ReflectionProperty::isDefault

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isDefaultChecks if property is a default property

说明

public ReflectionProperty::isDefault(): bool

Checks whether the property was declared at compile-time, or whether the property was dynamically declared at run-time.

参数

此函数没有参数。

返回值

true if the property was declared at compile-time, or false if it was created at run-time.

示例

示例 #1 ReflectionProperty::isDefault() example

<?php
class Foo {
public
$bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

以上示例会输出:

bool(true)
bool(false)

参见

add a note add a note

User Contributed Notes 1 note

up
1
aronREPLACE-WITH-A-DOTduby at gmail dot com
10 years ago
For clarification, this isn't checking if the value is the default value, it's checking if the property is. The description wasn't as clear as the notes in return. For example:

<?php
class A{
     public
$foo = 'bar';
}

$a = new A();
$a->foo = 'nope';
$a->new_prop = 'Hello World';

// assume $a_ref_* are your reflection property classes
echo $a_ref_foo->isDefault(); // TRUE even though we changed the value, the property is a default property
echo $a_ref_new_prop->isDefault();// FALSE we added the new_prop property, it's not default

?>
To Top