Почему я не могу вызвать свойство существует в stdClass?

вот мой код:

<?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 не существует

Так почему же это не работает?

3 ответов


попробуй:

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

указание имени класса (вместо объекта, как я сделал) означает в stdClass определение, вам нужно будет определить свойство.

вы можете видеть из демо что он печатает:

abc
exists 

, потому что stdClass не имеет никаких свойств. Вам нужно пройти в $madeUpObject:

property_exists($madeUpObject, 'madeUpProperty');

на функции!--10--> следующим образом:

bool property_exists ( mixed $class, string $property )

на $class параметр должен быть "имя класса или объект класса". The $property должно быть имя свойства.


Если вас не беспокоят значения NULL, вы можете сохранить его простым с помощью isset.