ReflectionProperty::hasDefaultValue
デフォルト値が宣言されているかをチェックする
説明
public bool ReflectionProperty::hasDefaultValue()
戻り値
プロパティが何かしらデフォルト値を持っている場合(null
を含みます)、true
を返します。
プロパティにデフォルト値が宣言されていないか、動的なプロパティの場合は、false
を返します。
例
例1 ReflectionProperty::hasDefaultValue の例
<?php
class Foo {
public $bar;
public ?int $baz;
public ?int $foo = null;
public int $boing;
public function __construct()
{
$this->ping = '';
}
}
$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // 動的なプロパティ
var_dump($ro->getProperty('pong')->hasDefaultValue()); // 未定義のプロパティ
?>
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php
参考
- ReflectionProperty::getDefaultValue