次のことを考慮してください
if(!count($_POST)) { echo 'something'; }
if(empty($_POST)) { echo 'something'; }
if(!$_POST) { echo 'something'; }
上記の各行はほとんど同じことを行います。どちらを使うかは特に決めていません。もっと具体的に言うべきですか?それは本当に問題ですか?
次のことを考慮してください
if(!count($_POST)) { echo 'something'; }
if(empty($_POST)) { echo 'something'; }
if(!$_POST) { echo 'something'; }
上記の各行はほとんど同じことを行います。どちらを使うかは特に決めていません。もっと具体的に言うべきですか?それは本当に問題ですか?
私はこれを使用します:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// POST request
}
リクエストが POST リクエストを使用して行われたかどうかをテストしたい場合は、 $_SERVER['request_method'] をチェックするのが良い方法です。
配列が空かどうかを調べたい場合は、いくつかの違いがあります。
Empty は、変数が「空」かどうかをチェックします。PHP は、次の値を空と見なします。
* "" (an empty string)
* 0 (0 as an integer)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)
Empty は言語構造であるため、これをコールバックとして使用できないため、次のコードは失敗します。
$var = array(); call_user_func('empty', $var);
また、変数のみをチェックするため、以下も致命的で失敗します。
if (empty(array()) { // do something }
また、count よりも高速ですが、これを他のものよりも考慮する必要はありません。
Count は「通常の」関数です。最初にパラメーターを配列にキャストし、それが空かどうかをチェックします。個人的には、これを使用して空の配列をチェックします。
ここで $value はブール値にキャストされ、空の配列は false にキャストされるため、count と同じ結果が得られるため、これは count とは少し異なります。
キャストのために、非常に大きな落とし穴があります。
$var = ''; // empty string
var_dump(empty($var)); // returns true
var_dump(count($var)); // returns false
empty()
引数変数が設定されていないか設定されているが False に評価される場合に True を返すため、私は常に使用することを好みました (空の配列はそうなります)。if(!isset($_POST) || !$_POST) { echo 'something'; }
それは私の心の中で一歩を節約し、今述べたカオスと同等のものを置き換えます.