T.MURACHIの日記: PHP勉強ちう 2
今日一日会社サボっていぢっていたおかげで、風邪は治らないけど (ダメじゃん) PHP はだいぶ解かってきましたョ。
言語としては Perl に近いんだけど、Perl に慣れてるとかなり不満も多い言語であるような気がします。ダブルクォートで括った文字列は変数を展開してくれるんだけど、連想配列の要素を埋め込む場合はブレースで括ってやらなきゃならなかったり、 Perl でいうところの qq| ~ | みたいな書き方も用意されていなかったり、バックスラッシュでエスケープする必要のない文字の手前にバックスラッシュを入れると確実にバックスラッシュそのものが文字として含まれてしまったりと、文字列リテラル一つをとっても使い勝手が結構違います。
ちょっと印象的なのは生成される瞬間? のオブジェクトの扱い。例えばユーザーの情報を扱うクラス user があるとして、
<?php $obj_user = new user('user_id'); echo $obj_user->get_name(); ?>
以下のような呼び出しは許されないのに、
<?= (new user('user_id'))->get_name() ?>
以下のような書き方は期待通りに動作してくれちゃったりします。
<?php
function invoke_user($user_id){
return new user($user_id);
}
?>
...
<?= invoke_user('user_id')->get_name() ?>
もちろん、どっちの書き方でも考え方的には良い子は真似しちゃいけません級の悪い見本だったりするわけですが (^_^; 。
PHPどころか… (スコア:1)
PHPは人に薦められながらも何故か手が出ないのです。
T.MURACHIさんが手を出しそうだと言うので、この手のエントリーを待っておりました:P。
(C言語くらいしか他に知らない)あたしとしては、「文字列処理」に関してはPerlは凄いと思うのですけど、データベースが絡んだり表現を柔軟にしようとするとPHPなのかな?と思い中…。
もしよろしかったら、そのうちにPHPの感想をエントリーしていただけるととても参考になるかも…(Perlからswitchした人として:P)。
----
:oすずめのおやどはどこじゃろぉ
('>ぴよぴよ
Re:PHPどころか… (スコア:1)
いやいや、完全に switch しちゃう気は無くて、なるべく適宜使い分けしていくつもりなのであります。ただ動作の仕組みを考えると Web 開発はなるべく PHP に倒していきたいなぁとは思っているのですが。
ご参考にしていただけるということで、気付いたことがあれば今後もちょろちょろと書いていきますね。
とりあえず、PHP は PHP のサイト [php.net]に和訳されたドキュメントが用意されている [php.net] (一部和訳が出来上がっていないページもありますが…) のはありがたいかなと思ってみたり。 Perl はちゃんとやろうと思うとどうしてもラクダ本が欲しくなっちゃいますからねぇ。。。
Linux を動かせる環境が手元にあれば、apache + PHP という環境を構築するのもそんなに大変じゃないし、一度構築してしまえば mod_perl みたいにスクリプトごとに conf に登録とかしなくてもいいんでその辺は手軽ではあります (この辺の認識は、おいらも mod_perl ちゃんと使ったこと無いので間違ってるかもしれませんが ^_^;)。
ただ、単純に Perl で書いたスクリプトを CGI として使用する場合と比べると、コマンドライン上でテストでき、デバッグも実行できる Perl の方が安心感はあるかなぁ、という気はしています。その代わり PHP はエラーメッセージを web に吐き出してくれる点はありがたいのですが。
あと、データベースに関しては Perl も DBI というモジュールを組み込むことで対応可能なので、使い勝手としてはそんなに変わらないと思います。それから、表現の自由度は web の場合は HTML などに委ねられる部分で、アプリを動かす言語自体にはあまり関係はありません。ついでにいうと、PHP の正規表現は Perl の真似っ子で、しかも関数呼び出しなので、文字列処理周りの使い勝手は Perl の方が断然上だったりします。
PHP は HTML の中に埋め込むような形式で記述できるので、 HTML の編集に特化したエディタがそのまま活用でき、出力結果もソースを見ただけで想像しやすいというのが言語仕様的には一番の利点なのかも。
むらちより/あい/をこめて。