empty() を使用して数値 0 を判定すると、empty() も true を返します。つまり、変数に数値 0 が含まれる可能性がある場合は、isset() を使用して判定する方が良いでしょう。 !
empty() 関数は、表面的には文字列が空かどうかを判定する関数であると誤解されがちですが、実際にはそうではなく、私はそのせいでかなり苦労しました。
empty() 関数は、変数が設定されているかどうかをテストするために使用されます。変数がすでに存在するか、空でない文字列であるか、ゼロ以外の場合は false 値が返され、それ以外の場合は true 値が返されます。したがって、文字列の値が 0 の場合も true が返され、空の中でステートメントが実行されます。これが罠です。
コードは次のとおりです | コードをコピー |
$a=array("1"=>"ddf"); |
empty() 関数の使用には注意することをお勧めします。
文字列が空かどうかを判断するには、次のように判断できます: if ($value=="") ...
* 形式: bool empty (混合変数)
* 関数: 変数が空かどうかを確認します
* 戻り値:
※変数が存在しない場合はTRUEを返します
* 変数が存在し、その値が ""、0、"0"、NULL、、FALSE、array()、var $var、および属性のないオブジェクトの場合は、TURE を返します
* 変数が存在し、値が ""、0、"0"、NULL、、FALSE、array()、var $var、および属性のないオブジェクトでない場合は、FALSE を返します
* バージョン: PHP 3、PHP 4、PHP 5
empty() 関数は、表面的には文字列が空かどうかを判定する関数であると誤解されがちですが、実際にはそうではなく、そのせいで私はとても苦労しました。 empty() 関数は、変数が設定されているかどうかをテストするために使用されます。変数がすでに存在するか、空でない文字列であるか、ゼロ以外の場合は false 値が返され、それ以外の場合は true 値が返されます。したがって、文字列の値が 0 の場合も true が返され、空の中でステートメントが実行されます。これが罠です。例: $value = 0 と仮定すると、empty($value)=false になります。 empty() 関数の使用には注意することをお勧めします。文字列が空かどうかを判断するには、次のように判断できます: if ($value=="") ... 形式: bool empty (mixed var) 関数: 変数が空かどうかを確認します 戻り値: 変数が空である場合存在しない場合、TRUE を返します。 変数が存在し、その値が ""、0、"0"、NULL、、FALSE、array()、var $var で、属性のないオブジェクトの場合は、TRUE が返されます。が存在し、その値が ""、0、"0"、NULL、FALSE、array()、var $var、および属性のないオブジェクトの場合は、FALSE を返します バージョン: PHP 3、PHP 4、PHP 5
関数によって返された結果を確認するために empty を使用すると、次のエラーが報告されます: 致命的なエラー: 書き込みコンテキストでは関数の戻り値を使用できません
例:
コードは次のとおりです | コードをコピー |
echo empty(strlen('be-evil.org')); |
PHP マニュアルに移動し、空の関数が説明されている次のテキストを参照してください:
注: empty() は変数のみをチェックします。それ以外の場合は解析エラーが発生します。つまり、empty(trim($name)) は機能しません。
empty() は変数のみをテストします。変数ではないものをテストすると解析エラーが発生しますしたがって、関数によって返された値を直接検出するために empty を使用することはできません。上記の例の解決策は次のとおりです。
コードをコピー | |