Here is my code:
<?php
$madeUpObject = new \stdClass();
$madeUpObject->madeUpProperty = "abc";
echo $madeUpObject->madeUpProperty;
echo "<br />";
if (property_exists('stdClass', 'madeUpProperty')) {
echo "exists";
} else {
echo "does not exist";
}
?>
And the output is:
abc does not exist
So why does this not work?
Try:
if( property_exists($madeUpObject, 'madeUpProperty')) {
Specifying the class name (instead of the object like I have done) means in the stdClass
definition, you'd need the property to be defined.
You can see from this demo that it prints:
abc
exists
Because stdClass
does not have any properties. You need to pass in $madeUpObject
:
property_exists($madeUpObject, 'madeUpProperty');
The function's prototype is as follows:
bool property_exists ( mixed $class, string $property )
The $class
parameter must be the "class name or an object of the class". The $property
must be the name of the property.
Unless you're concerned about NULL values, you can keep it simple with isset
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With