デフォルト値が宣言されているかをチェックする

# ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue — デフォルト値が宣言されているかをチェックする

### 説明

public function 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

### 参考

- ReflectionProperty::getDefaultValue() - プロパティで宣言されたデフォルト値を返す

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open