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中,可以做这样的事情吗?


答案 1

property_exists(混合$class,字符串$property)

if (property_exists($ob, 'a')) 

isset( mixed $var [, mixed $... ] )

注意:请注意,如果属性为空,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

答案 2

要检查该属性是否存在以及它是否也为 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
}

推荐