这是我的代码:
<?php
$madeUpObject = new \stdClass();
$madeUpObject->madeUpProperty = "abc";
echo $madeUpObject->madeUpProperty;
echo "<br />";
if (property_exists('stdClass', 'madeUpProperty')) {
echo "exists";
} else {
echo "does not exist";
}
?>
输出是:
ABC 不存在
那为什么这不起作用?
答案 0 :(得分:13)
尝试:
if( property_exists($madeUpObject, 'madeUpProperty')) {
指定类名(而不是我已经完成的对象)意味着在stdClass
定义中,您需要定义属性。
您可以从this demo看到它打印出来:
abc
exists
答案 1 :(得分:5)
因为stdClass
没有任何属性。您需要传递$madeUpObject
:
property_exists($madeUpObject, 'madeUpProperty');
bool property_exists ( mixed $class, string $property )
$class
参数必须是“类名或类的对象”。 $property
必须是该媒体资源的名称。
答案 2 :(得分:2)
除非您关注NULL值,否则可以使用isset
保持简单。