isset
ここでは適切な選択ですempty
。既知の変数を調べて、それが「空」であるかどうかを確認することのみを目的としています。ドキュメントによると
次のものは空と見なされます。
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)
それが言っていないのは、定義されていない配列メンバーをどのように扱うかです。ドキュメントページのコメントは、テストからの洞察を提供してくれます: http://www.php.net/manual/en/function.empty.php#105722
サブキーが存在しないが、親が存在し、文字列である場合、配列のサブキーの存在をチェックすると、空の場合は false が返されることに注意してください。
一方isset
( docs ) は、「変数が設定されていて NULL ではないかどうかを判断する」ように設計されています。まさにあなたが求めているものです。したがって、コードは次のようになります。
// check the length, too, to avoid zero-length strings
if(!isset($_POST["example"]) || strlen(trim($_POST["example"])) < 1) {
echo "You need to enter any text to example box.";
} else {
// handle form submission
}
ドキュメンテーション
PHP isset
- http://php.net/manual/en/function.isset.php
PHP empty
- http://www.php.net/manual/en/function.empty.php
もっと読む - http://virendrachandak.wordpress.com/2012/01/21/php-isset-vs-empty-vs-is_null/