ReflectionProperty::__construct
(PHP 5)
ReflectionProperty::__construct — Construct a ReflectionProperty object
Description
This function is currently not documented; only its argument list is available.
Parameters
-
class
-
The class name, that contains the property.
-
name
-
The name of the property being reflected.
Return Values
No value is returned.
Errors/Exceptions
Trying to get or set private or protected class property's values will result in an exception being thrown.
Examples
Example #1 ReflectionProperty::__construct() example
<?php
class String
{
public $length = 5;
}
// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('String', 'length');
// Print out basic information
printf(
"===> The%s%s%s%s property '%s' (which was %s)\n" .
" having the modifiers %s\n",
$prop->isPublic() ? ' public' : '',
$prop->isPrivate() ? ' private' : '',
$prop->isProtected() ? ' protected' : '',
$prop->isStatic() ? ' static' : '',
$prop->getName(),
$prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);
// Create an instance of String
$obj= new String();
// Get current value
printf("---> Value is: ");
var_dump($prop->getValue($obj));
// Change value
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));
// Dump object
var_dump($obj);
?>
The above example will output something similar to:
===> The public property 'length' (which was declared at compile-time) having the modifiers array ( 0 => 'public', ) ---> Value is: int(5) ---> Setting value to 10, new value is: int(10) object(String)#2 (1) { ["length"]=> int(10) }
Example #2 Getting value from private and protected properties using ReflectionProperty class
<?php
class Foo {
public $x = 1;
protected $y = 2;
private $z = 3;
}
$obj = new Foo;
$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)
$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)
?>
The above example will output something similar to:
int(2) int(3)
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения, относящиеся к переменным и типам
- Reflection
- Функция ReflectionProperty::__clone() - Копирующий конструктор
- Функция ReflectionProperty::__construct() - Конструктор класса ReflectionProperty
- Функция ReflectionProperty::export() - Экспорт
- Функция ReflectionProperty::getDeclaringClass() - Получение объявляющего класса
- Функция ReflectionProperty::getDocComment() - Получение документируемого комментария
- Функция ReflectionProperty::getModifiers() - Получение модификаторов
- Функция ReflectionProperty::getName() - Получение имени свойства
- Функция ReflectionProperty::getValue() - Получение значения
- Функция ReflectionProperty::isDefault() - Проверяет, является ли значение свойством по умолчанию
- Функция ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
- Функция ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)
- Функция ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным (public)
- Функция ReflectionProperty::isStatic() - Проверка, является ли свойство статическим
- Функция ReflectionProperty::setAccessible() - Задание доступности свойства
- Функция ReflectionProperty::setValue() - Задание значения свойству
- Функция ReflectionProperty::__toString() - Преобразование в строку
Коментарии
At example #2: the comment // int(2) is stated while the value for the private property is actually 3. (private $z = 3;)
var_dump($prop->getValue($obj)); // This should be int(3)