PHP Conference Japan 2024

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue檢查屬性是否已宣告預設值

說明

public ReflectionProperty::hasDefaultValue(): bool

檢查屬性是否已宣告預設值,包含隱含的 null 預設值。只有在沒有宣告預設值的類型化屬性(或動態屬性)時才會回傳 false

參數

此函式沒有參數。

回傳值

如果屬性有任何預設值(包含 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

另請參閱

新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top