php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #81662 Private functions are invokable without need to use "setAccessible".
Submitted: 2021-11-26 15:16 UTC Modified: 2021-11-26 20:04 UTC
From: werlos at gmail dot com Assigned:
Status: Not a bug Package: Reflection related
PHP Version: 8.1.0 OS: linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: werlos at gmail dot com
New email:
PHP Version: OS:

 

 [2021-11-26 15:16 UTC] werlos at gmail dot com
Description:
------------
Prior to PHP 8.1 to invoke private method with ReflectionMethod calling "setAccessible" with "true" was needed.

Test script:
---------------
<?php

class Foo {
    private function bar() { return 42; }
}

$foo = new Foo();

$reflection = new \ReflectionMethod($foo, 'bar');

echo $reflection->invoke($foo);

Expected result:
----------------
The need of calling "setAccessible": "$reflection->setAccessible(true);".


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-11-26 15:21 UTC] nikic@php.net
-Status: Open +Status: Not a bug
 [2021-11-26 15:21 UTC] nikic@php.net
Yes, this is no longer needed: https://wiki.php.net/rfc/make-reflection-setaccessible-no-op
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jan 02 12:01:29 2025 UTC