プロパティのアクセス範囲を設定する

# ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionProperty::setAccessible — プロパティのアクセス範囲を設定する

警告

この関数は PHP 8.5.0 で 非推奨になります。この関数に頼らないことを強く推奨します。

### 説明

#[\Deprecated]
public function ReflectionProperty::setAccessible(bool `$accessible`): void

ReflectionProperty::getValue() や ReflectionProperty::setValue() メソッド経由で、 protected や private なプロパティにアクセス可能にします。

> 注意: PHP 8.1.0 以降は、このメソッドをコールしても何も起こりません。 つまり、全てのプロパティはデフォルトでアクセス可能です。

### パラメータ

`accessible`

  `true` を指定すると、アクセスできるようになります。

### 戻り値

値を返しません。

### 変更履歴

バージョン | 説明
--- | ---
8.5.0 | 効果がなくなったため、このメソッドは非推奨になりました。
8.1.0 | このメソッドをコールしても何も起こりません。 全てのプロパティはデフォルトでアクセス可能です。

### 例

例1 簡単なクラス定義

    <?php
    class MyClass
    {
        private $foo = 'bar';
    }

    $property = new ReflectionProperty("MyClass", "foo");
    $property->setAccessible(true);

    $obj = new MyClass();
    echo $property->getValue($obj);
    echo $obj->foo;
    ?>

上の例の出力は、 たとえば以下のようになります。

    bar
    Fatal error: Uncaught Error: Cannot access private property MyClass::$foo in /in/WJqTv:12

### 参考

- ReflectionProperty::isPrivate() - private プロパティであるかどうかを調べる
- ReflectionProperty::isProtected() - protected プロパティであるかどうかを調べる

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