php8.5
Home/ Manual/ reflection / reflectionmethod/ ReflectionMethod::setAccessible

ReflectionMethod::setAccessible

PHP function Deprecated as of PHP 8.5.0 Edit on GitHub ✎

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

Set method accessibility

Function-8-5-0

Description

ReflectionMethod::setAccessible(bool $accessible): void

Enables invoking of a protected or private method via the ReflectionMethod::invoke method.

Note

As of PHP 8.1.0, calling this method has no effect; all methods are invokable by default.

Parameters

accessible

true to allow accessibility, or false.

Return Values

Void

Changelog

VersionDescription
8.5.0This method has been deprecated, as it no longer has an effect.
8.1.0Calling this method has no effect; all methods are invokable by default.

Examples

Simple Class definition

php
<?php
class MyClass
{
    private function foo()
    {
        return 'bar';
    }
}

$method = new ReflectionMethod("MyClass", "foo");
$method->setAccessible(true);

$obj = new MyClass();
echo $method->invoke($obj);
echo $obj->foo();
?>

The above example will output something similar to:

output
bar
Fatal error: Uncaught Error: Call to private method MyClass::foo() from global scope in /in/qdaZS:16

See Also

  • ReflectionMethod::isPrivate
  • ReflectionMethod::isProtected

Source: reference/reflection/reflectionmethod/setaccessible.xml · from the official PHP manual (php/doc-en)