16

PHP では、変数が設定/定義されていないかどうかを確認したいのですが、変数 NULL の設定は set/defined と見なされます

私はここですべてを認識しています: http://php.net/manual/en/types.comparisons.php isset()、empty()、および is_null() を含みます。これらのどれも、私が探しているものではないようです。次の例を検討してください。

<?php 
$myNull = null;
echo 'isset($myNull): "'.isset($myNull).'"<br />';
echo '$myNull value = "'.$myNull . '"<br />';

echo "<br />";

echo 'isset($myUndefined): "'.isset($myUndefined).'"<br />';
echo '$myUndefined value = "'.$myUndefined . '"<br />';
?>

この例では、次のように出力されます:
isset($myNull): ""
$myNull value = ""

isset($myUndefined): ""
注意:未定義の変数: myUndefined in C:\wamp\www\plm\temp4.php 行 9
$myUndefined 値 = ""

上記の通知にあるように、変数が未定義かどうかを知りたいです。関数が必要です。それを「is_undefined」と呼びます。

$myNull = null;
is_undefined($myNull); // is false
is_undefined($myUndefined); // is true

誰?前もって感謝します。

4

7 に答える 7

7

is_undefined 関数が必要な場合は、配列を操作したくないので、次のようにします。

function is_undefined(&$test) {
    return isset($test) && !is_null($test);
}

したがってecho isset($myNull);、ブール値(true)を「」に変換すると。そのため、値は空白です。画面に表示したい場合はvar_dump(isset($myNull));、それが true または false の場合に表示されます。

また、 $myUndefined のエコーがありますが、まだ設定されていないため、警告が表示されます。あなたがしたいことは次のとおりです。

if (!empty($myUndefined)) {
    // variable is defined so do something with it
    echo '$myUndefined value = "' . $myUndefined . '"<br />';
} else {
    echo 'Oops, $myUndefined is Undefined!<br />";
}

isset() と is_null() と empty() の簡単な概要を次に示します。

$foo = null;
// isset($foo) == true;
// empty($foo) == true;
// is_null($foo) == true;

// Notice I don't set $foo2 to anything
// isset($foo2) == false;
// empty($foo2) == true;
// is_null($foo2) throws a notice!

$foo3 = false;
// isset($foo2) == true;
// empty($foo2) == true;
// is_null($foo2) == false;

$foo4 = 1234;
// isset($foo2) == true;
// empty($foo2) == false;
// is_null($foo2) == false;
于 2013-06-07T21:17:32.633 に答える