1. ホーム
  2. php

[解決済み] 値が設定され、かつヌルであるかどうかをチェックする

2023-01-02 05:29:54

質問

値がnullを含む何れかの値として定義されているかどうかを確認したい。 isset はnull値を未定義とみなして false . 以下はその例である。

$foo = null;

if(isset($foo)) // returns false
if(isset($bar)) // returns false
if(isset($foo) || is_null($foo)) // returns true
if(isset($bar) || is_null($bar)) // returns true, raises a notice

なお $bar は未定義であることに注意してください。

を満たす条件を探したいのですが。

if(something($bar)) // returns false;
if(something($foo)) // returns true;

何かアイデアはありますか?

どのように解決するのですか?

IIRCでは get_defined_vars() を使うことができます。

$foo = NULL;
$vars = get_defined_vars();
if (array_key_exists('bar', $vars)) {}; // Should evaluate to FALSE
if (array_key_exists('foo', $vars)) {}; // Should evaluate to TRUE