PHPの良いとこ悪いとこ
去年一年で感じた良いとこ悪いとこ。
良いとこ
簡単
何といっても簡単なのがいい。
PHP案件の作成受注受けて参考サイトのソースコードもらったら翌日からもうコーディングできたぐらい簡単。
見たのはPHPドキュメントとPHP4徹底攻略―Webとデータベースの連携プログラミングぐらい。
お手軽簡単がやっぱり最大のメリットやね。
連想配列が気持ち良すぎる
JavaとかDelphiのがっちがち型制約言語に慣れてたから、この連想配列の使い勝手の良さはかなり衝撃だった。
JavaでいうとこのHashmapとオブジェクトでのデータツリーみたいなのが連想配列だとさくっと作れたりして。
これに慣れたらJavaの手続きが面倒に感じてアカン。
var $data = null;
$data["session"]["user"]["userId"] = $_GET["id"];
$data["session"]["user"]["userPass"] = $_GET["passwd"];$authResult = doAuth(& $data["session"]["user"]);
みたいなのが楽すぎてイカス。
脳みそに優しい型無し言語
基本的にキャストとか関係なし。
変数作ったら文字だろうが数字だろうがクラスだろうがとりあえず何でも突っ込める。
IO作る時に型に悩む必要が無いからものっそい楽。
困ったらとりあえず連想配列入れとけみたいな。
データベースとの連係が楽すぎ
DBつーか結果セット*1の取扱いが連想配列と同じように出来るから、データベース扱うのが楽すぎる。
SQL実行して結果セットから読み込むのなんて
$bRet = OCIExecute ($stmt);
if ($bRet == false) {
print "cannot execute sql:\r\n";
print "query=".$sql."\r\n";
return false;
}
while (OCIFetchInto ($stmt, $data, OCI_ASSOC)){
$access[] = $data ;
}
こんだけ。
使いやすい制御構文
つかforeach。
連想配列のキーと値のマップを1構文で扱えるのがイカス
javaのCollectionフレームワークよかこっちのが好きかも。
$data["apple"]="red";
$data["orange"]="orange";
$data["grape"]="purple";
$data["banana"]="yellow";
$data["green apple"]="green";
$data["tomato"]="red";
$data["pine apple"]="yellow";foreach($data as $fruits -> $color ){
print $fruits ." is ".$color ;
}
とか。
ああ楽ちん。
悪いとこ
ライブラリのネームスペースが無い
これはdelphiも一緒だけど、ライブラリにネームスペースが無いから同名のライブラリがあると、ライブラリパスの優先順位によって読み込まれるライブラリが一意に決まっちゃう。
小規模のサイトだったらこれでも十分なんだけど、ちょっと大規模の開発になるとこれを避けるためにやたら長い名前のファイルにしないとならん。
これはスマートじゃないやね。