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.
PHP.mk документација
ReflectionClass::hasProperty
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
reflectionclass.hasproperty.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
reflectionclass.hasproperty.php
ReflectionClass::hasProperty
Референца за `reflectionclass.hasproperty.php` со подобрена типографија и навигација.
ReflectionClass::hasProperty
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
ReflectionClass::hasProperty — Проверува дали својството е дефинирано
= NULL
Проверува дали наведеното својство е дефинирано.
Параметри
name-
Име на својството што се проверува.
Примери
Пример #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"));
?>Горниот пример ќе прикаже нешто слично на:
bool(true) bool(true) bool(true) bool(false)
Види Исто така
- ReflectionClass::hasConstant() - Проверува дали константата е дефинирана
- ReflectionClass::hasMethod() - Проверува дали методот е дефиниран
Белешки од корисници 3 белешки
dalguete at gmail dot com ¶
пред 4 години
dalguete at gmail dot com ¶
пред 4 години
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 ¶
пред 16 години
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
}
?>