2012-04-04 14 views
0

この問題は少し奇妙です。送信された値がnullの場合、なぜ "not not null"と表示されるのですか?その理由は何ですか?変数がnullかどうかを確認します - 不正確な検証

Parametersapplication/x-www-form-urlencoded 
lists_owned null 
Source 
lists_owned=null 

<?php 
$lists_owned = $_POST['lists_owned']; 

var_dump($lists_owned); // string(4) "null" 

if(!is_null($_POST['lists_owned'])) { 
    echo "Is not null"; I see this echo 
} 
?> 

おかげ

+1

は、 '$ _POST [ 'lists_owned']が'それをアクセスする前に設定されている場合にも、チェック: '$ lists_owned = ISSET($ _ POST [ 'lists_owned' ]))? $ _POST ['lists_owned']:null; 'それ以降は' $ lists_owned'変数だけを使用するので、$ lists_ownedを設定して使用しないことは無駄です。 – mamadrood

答えて

4

"null"nullではありません。 "null"をチェックする場合は、等価を使用する必要があります。

if($_POST['lists_owned'] != 'null') { 
1

これは、ポスト値が実際のヌル値ではなく「ヌル」と呼ばれる文字列であるためです。

0

あなたの値は実際にはnullの値ではなく、文字列 "null"のようです。イグナシオが正しいすなわち

<?php 
$x = "null"; 
$y = null; 
var_dump($x); 
var_dump($y); 
?> 

出力

string(4) "null" 
NULL 
関連する問題