例えばこんなコードを書いているとき
<?php function edit($id=null) { if (empty($id)) { //パラメータが足りなかったらエラーページへ飛ばす $this->layout = "error"; return; }
正規データとして$idに「0」が渡ってきたとしても、それだとempty()でfalseを返してしまう。
まあ、それはempty()の仕様なので正しい動きなんだけども。
var が空でないか、0でない値であれば FALSE を返します。
次のような値は空であると考えられます。:
- "" (空文字列)
- 0 (0 は整数)
- "0" (0は文字列)
- NULL
- FALSE
- array() (空の配列)
- var $var;(変数が宣言されているが、クラスの中で値が設定されていない)
キー項目に0が入っていることは普通あまりないことだと思うけど、可能性としてない話ではないので一応メモ。
><