PHP Doku:: Checks if property is defined - reflectionclass.hasproperty.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenReflectionThe ReflectionClass classReflectionClass::hasProperty

Ein Service von Reinhard Neidl - Webprogrammierung.

The ReflectionClass class

<<ReflectionClass::hasMethod

ReflectionClass::implementsInterface>>

ReflectionClass::hasProperty

(PHP 5 >= 5.1.0)

ReflectionClass::hasPropertyChecks if property is defined

Beschreibung

public bool ReflectionClass::hasProperty ( string $name )

Checks whether the specified property is defined.

Parameter-Liste

name

Name of the property being checked for.

Rückgabewerte

TRUE if it has the property, otherwise FALSE

Beispiele

Beispiel #1 ReflectionClass::hasProperty() example

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

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Siehe auch


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
rwilczek at web-appz dot de
13.10.2009 14:40
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)

<?php
class Foo
{
    private
$x;
}

class
Bar extends Foo
{
   
//
}

$foo = new ReflectionClass('Foo');
$bar = new ReflectionClass('Bar');

var_dump($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
}
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)