あなたの知らない PHP 5つの秘密。

Date
2006-07-16 (Sun)
Category
Links | Translation | Trivia | php

以下は、5 Things You Probably Didn't Know About PHP By Gregory Szorcのいい加減訳です。


?> はオプション

<?php
...
?>

たいだい上のように PHP のコードを書くと思うけれど、最後の ?> は実は書かなくてもいい。少なくとも PHP 5.1 では動く。問題点はあるけど、XML なんかの出力には、?> 以降に(意図的でない)空白行が入ると問題を引き起こす(こともある)ので、終了タグを書かない。

他言語を PHP 中に埋め込むことができる

Java, Perl, Python.NET なんかは PHP から実行できる。Java Inteface はとってもクール。

配列へアクセスする方法で、オブジェクトも扱える

Standard PHP Library (SPL) を使えば、オブジェクトをあたかも配列のように扱える。 例えば ArrayObject を使うと以下のようなことが出来る。

$object = new MyObject();
$object['name'] = 'Hello World';

あるいは

$object = new MyObject();
foreach ($object as $k=>$v) {
	echo "$k = $v\n";
}

など。

require() は require_once() より速い

(これは PHP 5.2 までの話だけれど、)require_once でなく require を使った方が、アプリケーションが大きくなればなるほど、相当速くなる。require_once は呼ばれるたびに余分な system call が走って重複がないことを確認するから。「じゃぁどうやって重複がないことを保証するわけ?」「まだ require_once なんか使ってんのがダセーの。__autoload をうまく使え。」もし SPL が入ってるなら、spl_autoload_* を使えば複数の autoload ができる。より詳しい内容は Zend Framework ML のこのスレを読もう。

PHP 5.1.0 未満を使ってる奴はアフォ

PHP 5.0.x ブランチはもうメンテされてない。PHP 4.x ブランチは死んでる。いかに理由を挙げるから、まだ移行してない奴はするように


以下感想。

僕は PHP の parse の処理を考えると、閉じタグがいらない理由はなんとなくわかるけど、場合によりけりだと思うなぁ。Class 定義の書いてあるファイルとか、人に見せるコードはちゃんと閉じたい。直接関係ないけれど、始まりは <?php でするのは大賛成です(できれば short-open-tag を php.ini で off にして)。

他言語埋め込みは、僕にはとりあえず必要性がないのでよくわかりません。

SPL の ArrayObject は、Greg 曰く database query result とか LDAP directory queries によく使って便利だとか。ちょうど昨日も書いたけど、SPL は面白そうなので今度触ってみよう。

PDO 使えってのも、いいんだけど、『PDO 使えば SQL Injection 対策になる』ってのは危ないね。ちゃんと使えば、SQL Injection を起こすコードを書きにくくなるってだけだし。

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/180
Listed below are links to weblogs that reference
あなたの知らない PHP 5つの秘密。 from The Croton

Return to Page Top