ReflectionProperty::isDefault

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isDefaultデフォルトプロパティであるかどうかを調べる

説明

public ReflectionProperty::isDefault(): bool

そのプロパティがコンパイル時に宣言されたものなのか、実行時に動的に宣言されたものなのかを調べます。

パラメータ

この関数にはパラメータはありません。

戻り値

プロパティがコンパイル時に宣言された者である場合に true、 実行時に作られたものである場合に false を返します。

例1 ReflectionProperty::isDefault() の例

<?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