私はオブジェクトを持っています:
class Obj
{
public $foo;
public $bar;
}
$obj = new Obj();
print_R($obj);
出力:
Obj Object
(
[foo] =>
[bar] =>
)
しかし
var_dump(isset($obj->foo));
出力bool(false)
。
オブジェクトに変数が設定されていることを確認する方法は?
なぜなら
$foo = null;
var_dump(isset($foo)); // false
property_existsまたはReflectionClass::hasPropertyで確認したいかもしれません
と の両方を組み合わせて使用する必要がありisset
ますproperty_exists
。
if (property_exists($obj,$foo) && isset($obj->$foo)) {
// use $obj->foo
}
何も設定されていないプロパティが存在する可能性があり、期待どおりにアクセスできません。