たまにPHPリファレンスサイトを読み返してみると、知らなかったような超基礎的なことがあるんですねえ。このへんてみんな知ってるような常識? 自分はつい最近まで知らなかったことをいくつか。
閉じるタグは省略可能
PHPのコードを書くには <?php ~ ?> の間に書く、というのが基本ですが、このうち終了タグってじつは省略可能です。require()文などで読み込まれるような1ファイルが丸ごとPHPコードのphpファイルの場合は、余計な末尾改行問題を回避するためにもむしろ終了タグ省略が推奨されていたり。
<script>型指定
PHPのタグというと、前述の <?php ~ ?> のほか、オプションで <? ~ ?> とか <% ~ %> とかが使えますが、このほかにさらに、
<script language="php">
echo 'Hello World!';
</script>
なんてのも使えます。なんだかクライアントサイドで実行されそうな感じがしますが、他のPHPタグと同様にサーバサイドで処理されてからクライアントのブラウザにHTMLが送信されます。
memory_limitは古いバージョンではデフォルトOff
php.ini で、PHPのメモリ使用量上限値を指定するには memory_limit ディレクティブで指定します。また実行中のスクリプトのメモリ使用量を調べるには、memory_get_usage() があります。これらを利用するには、PHP5.2.1より前のバージョンでは、コンパイル時に --enable-memory-limit オプションをつけないと有効になりません。5.2.1以降だととくに意識せずとも利用できるようになります。もし有効になっていない場合は、php.iniでメモリ上限を指定したつもりでも、とくにエラーにならずスルーされてしまうので気づきづらい。かなりタチが悪いです。
詳細:PHP: コア php.ini ディレクティブに関する説明 - Manual
リフレクション
PHP 5以降では、リフレクションが利用できます。関数とかクラスとか自身の情報が取得できます。フレームワーク的な部分を開発しようとするときなんかに、こういう手段を知ってると痒いところに手が届くかのように重宝しますね。
タイプヒンティング
PHPは数値型とか文字列型などが暗黙の型変換されまくりな言語ですが、PHP 5.1以降では、関数の宣言時に引数の型指定がじつはできます。ただしサポートは一部だけで、Object型と配列型のみ。intやstringなどは対象外なのが残念。とはいえうまく活用すれば可読性・保守性の高いコードが書けそうですね。
public function test_array(array $input_array) {
print_r($input_array);
}







