PHP 检查对象或类中是否存在属性
2022-08-30 06:18:11
我知道PHP没有纯对象变量,但我想检查给定对象或类中是否存在属性。
$ob = (object) array('a' => 1, 'b' => 12);
或
$ob = new stdClass;
$ob->a = 1;
$ob->b = 2;
在JS中,我可以写这个来检查变量是否存在于一个对象中:a
if ('a' in ob)
在PHP中,可以做这样的事情吗?
我知道PHP没有纯对象变量,但我想检查给定对象或类中是否存在属性。
$ob = (object) array('a' => 1, 'b' => 12);
或
$ob = new stdClass;
$ob->a = 1;
$ob->b = 2;
在JS中,我可以写这个来检查变量是否存在于一个对象中:a
if ('a' in ob)
在PHP中,可以做这样的事情吗?
if (property_exists($ob, 'a'))
注意:请注意,如果属性为空,isset() 将返回 false
if (isset($ob->a))
示例 1:
$ob->a = null
var_dump(isset($ob->a)); // false
示例 2:
class Foo
{
public $bar = null;
}
$foo = new Foo();
var_dump(property_exists($foo, 'bar')); // true
var_dump(isset($foo->bar)); // false
要检查该属性是否存在以及它是否也为 null,可以使用函数 。property_exists()
文档: http://php.net/manual/en/function.property-exists.php
与 isset() 相反,property_exists() 返回 TRUE,即使该属性具有值 NULL。
布尔property_exists(混合$class,字符串$property)
例:
if (property_exists($testObject, $property)) {
//do something
}