PHP: Hypertext Preprocessor (original) (raw)

ReflectionClass::hasProperty

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::hasProperty — Checks if property is defined

Description

public ReflectionClass::hasProperty(string $name): bool

Parameters

name

Name of the property being checked for.

Return Values

[true](reserved.constants.php#constant.true) if it has the property, otherwise [false](reserved.constants.php#constant.false)

Examples

Example #1 ReflectionClass::hasProperty() example

`<?php
class Foo {
public $p1;
protected $p2;
private $p3;

} obj=newReflectionObject(newFoo());vardump(obj = new ReflectionObject(new Foo());var_dump(obj=newReflectionObject(newFoo());vardump(obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>`

The above example will output something similar to:

bool(true) bool(true) bool(true) bool(false)

See Also

Found A Problem?

dalguete at gmail dot com

3 years ago

`hasProperty() now is consistent with getProperty() and getProperties() methods, thanks to this fix https://bugs.php.net/bug.php?id=49719

hasProperty() no longer returns true in private properties from parent classes.

`

dalguete at gmail dot com

3 years ago

`hasProperty() now is consistent with getProperty() and getProperties() methods, thanks to this fix https://bugs.php.net/bug.php?id=49719

hasProperty() no longer returns true in private properties.

`

rwilczek at web-appz dot de

15 years ago

`Note, that this method does not guarantee, that you can get a property with ReflectionClass::getProperty().

ReflectionClass::hasProperty() considers the parent classes (ignoring however, that a private property is not inherited), while ReflectionClass::getProperty() and ReflectionClass::getProperties() don't care about inheritance.

(Tested with PHP 5.3.0)

bar=newReflectionClass(′Bar′);vardump(bar = new ReflectionClass('Bar');var_dump(bar=newReflectionClass(Bar);vardump(foo->hasProperty('x'); // bool(true) var_dump($bar->hasProperty('x'); // bool(true)var_dump(get_class($foo->getProperty('x'))); //string(18) "ReflectionProperty" try { $bar->getProperty('x'); } catch (ReflectionException $e) { echo $e->getMessage(); // Property x does not exist } ?>

`