- ベストアンサー
inculdeでphpを省略するには。
フォームのphpを作っていて、 何ページも書いていると だんだん同じ記述が増えていくことがありました。 includeでページを読み込んで記述を減らせると聞いたのですが どのようにすればよいのかよくわかりません。 何となくでもいいのでヒントや例をあげていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おそらく、共通ライブラリやコードを再利用しやすいようにクラスを作るのですが、御質問の内容はそういう事を言っているのでしょうね。 問題は、現在作成されているものが、果たして共通ライブラリやクラスが必要なものかどうかという事です。
その他の回答 (2)
- saintandre
- ベストアンサー率31% (194/607)
質問者様はfunctionを使用してユーザー定義関数を利用しておられますでしょうか? ユーザー定義関数を使うとかなりの処理を簡略化できます。 たとえば<select>要素のリストで連想配列のキーを値に中身をテキストにした <option>要素をつけて、なおかつ初期値をキーが等しい場合はselectedを つけたいといった場合ソースは以下のようになるかとおもいます。 (インデントをつけるために全角スペースを使用しておりますのでご注意下さい) ■関数使用せず $ary1 = array(1 => "はい" , 2 => "いいえ"); $ary2 = array(1 => "男" , 2 => "女"); $ary3 = array(1 => "希望する" , 2 => "希望しない"); $a1 = 1; $a2 = 2; $a3 = 1; echo "<select name='a1'>"; foreach($ary1 as $k => $v){ $flg = ""; if($k == $a1){ $flg = "selected"; } echo "<option value='" . $k . "' " . $flg . ">" . $v . "</option>"; } echo "</select>"; echo "<select name='a2'>"; foreach($ary2 as $k => $v){ $flg = ""; if($k == $a2){ $flg = "selected"; } echo "<option value='" . $k . "' " . $flg . ">" . $v . "</option>"; } echo "</select>"; echo "<select name='a3'>"; foreach($ary3 as $k => $v){ $flg = ""; if($k == $a3){ $flg = "selected"; } echo "<option value='" . $k . "' " . $flg . ">" . $v . "</option>"; } echo "</select>"; ここで同じようのな記述が三回も繰り返しているのがわかるかとおもいます。 同じ部分は関数を定義して処理すると以下のようになります。 ■関数使用 $ary1 = array(1 => "はい" , 2 => "いいえ"); $ary2 = array(1 => "男" , 2 => "女"); $ary3 = array(1 => "希望する" , 2 => "希望しない"); $a1 = 1; $a2 = 2; $a3 = 1; echo select("a1",$ary1,$a1); echo select("a2",$ary2,$a2); echo select("a2",$ary3,$a3); function select($name,$array,$value){ $s = ""; $s .= "</select>"; $s .= "<select name='" . $name . "'>"; foreach(array as $k => $v){ $flg = ""; if($k == $value){ $flg = " selected"; } $s .= "<option value='" . $k . "' " . $flg . ">" . $v . "</option>"; } $s .= "</select>"; return $s; } 以上のようにユーザー定義関数で記述を減らすことができるのがわかるかとおもいます。 includeやクラスはこの先の話となりますので今回は説明を省かせていただきます。
- zwi
- ベストアンサー率56% (730/1282)
ユーザー定義関数やクラスの作り方、並びになぜ関数やクラスを作るのかを理解されたほうが良い様に思います。includeでファイルを分けるのはそれからで良いでしょう。