(PHP 7 >= 7.4.0, PHP 8)
ReflectionProperty::isInitialized — プロパティが初期化されているかをチェックする
$object
= null
): boolプロパティが初期化されているかをチェックします。
object
プロパティが static でない場合、プロパティを取得する対象のオブジェクトを与えなければなりません。
型付きのプロパティが初期化される前か、明示的に unset()
されたプロパティの場合は、 false
を返します。
それ以外の全てのプロパティは、 true
が返されます。
プロパティがアクセス不能な場合、 ReflectionException が投げられます。 ReflectionProperty::setAccessible() を使えば、protected や private なプロパティをアクセス可能にすることが出来ます。
バージョン | 説明 |
---|---|
8.0.0 |
object は、nullable になりました。
|
例1 ReflectionProperty::isInitialized() の例
<?php
class User
{
public string $name;
}
$rp = new ReflectionProperty('User', 'name');
$user = new User;
var_dump($rp->isInitialized($user));
$user->name = 'Nikita';
var_dump($rp->isInitialized($user));
?>
上の例の出力は以下となります。
bool(false) bool(true)