今時テーブルでレイアウトするのはどうかと思うが、それはまだよい。 styleをcssを使わず、ハードコーディングしているうえ、クオーテーション使わずにダブルクオーテーションで囲って¥だらけになっているのは・・・嫌になるががまだよい。 クラスを作っているのにも関わらず、getter,setterは使わずに変数はすべてコンストラクタで取り、クラス変数で保持するのは・・・再利用が考えられていないが、こんなソース再利用しないのでどーでもいい。なぜクラスを作ったのかは謎。 一番問題なのは、html中にデータを埋め込んで簡単に画面を作れるというphpのメリットを完全に殺して、巨大な$htmlを改行、インデントなしで作って表示しているところだ PHPの初心者向けサイトでもこんな書き方しているところはないぞ。何をどう考えてこう書こうと思ったのか小一時間どころじゃなく問い詰めたい。
実物は、これの中でさらにphpファイルを読んで、そのデータの受け渡しはなぜか引数じゃなく、セッション変数でおぞましいものだったのだが、うまく表現できなかったので省略 もうこれ書いたやつにphp書かせるな。つーかコード書かせるな。
- -- main.php
- <html>
- <head>
- …中略
- <?php
- include("obj_data.php");
- $obj_data = new get_data($value);
- $output_html = $obj_data->getData();
- ?>
- <table>
- <?php
- print $output_ntml;
- php?>
- </table>
- <html>
- <head>
- --obj_data.php
- class get_data {
- private $result;
- private $value;
- __Construct($value){
- $this->value = $value; //略しているが、引数は10個ぐらいある
- }
- //getter,setterは用意されていない。データが受け取れるのはコンストラクタのみ
- private function getSQL(){ //ここには引数なしの関数しか用意されていない
- $sql = "select * from table where col = $this->value";
- $result = $execSQL($sql);
- }
- public function getData(){
- html = "";
- if(count($result) != 0) {
- html .= "<tr style=\"height:30px\">" //カンの良い諸兄ならわかるかと思うが、これではhtmlが改行されない。
- html .= "<tb style=\"width:200px; background-color:orange\">" //インデントももちろんない
- (以下、取れてきたデータでhtmlを作る千数百行のコード)
- html .= "</tb>"
- html .= "</tr>"
- }
- return html;
- }
- }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
コメント投稿には、twitter認証が必要です。
Twitter認証
に、2017年に至ってまでまだハードコーディングだとぅ!? なんという臭さ!やばい!!