7

这是我的代码:

<?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 不存在

那么为什么这不起作用呢?

4

3 回答 3

14

尝试:

if( property_exists($madeUpObject, 'madeUpProperty')) {

指定类名(而不是像我所做的那样的对象)意味着在stdClass定义中,您需要定义属性。

您可以从这个演示中看到它打印:

abc
exists 
于 2013-02-01T21:09:23.537 回答
5

因为stdClass没有任何属性。你需要传入$madeUpObject

property_exists($madeUpObject, 'madeUpProperty');

函数的原型如下:

bool property_exists ( mixed $class, string $property )

$class参数必须是“类名或类的对象”。$property必须是属性的名称。

于 2013-02-01T21:09:53.067 回答
2

除非您担心 NULL 值,否则您可以使用isset.

于 2013-02-01T21:11:07.017 回答