register_shutdown_function() not supports private methods

From: Date: Wed, 27 Nov 2019 23:33:08 +0000
Subject: register_shutdown_function() not supports private methods
Groups: php.internals 
Request: Send a blank email to internals+get-107875@lists.php.net to get a copy of this message
Hi internals, I am using the register_shutdown_function() inside a class, and then I have created a private method to be called during shutdown. I have noted that if the method is public it works, but private does not. register_shutdown_function([ self::class, 'privateMethod' ]); // FAIL Warning: (Registered shutdown functions) Unable to call MyClass::privateMethod() - function does not exist in Unknown on line 0 In contrast, spl_autoload_register() will works independent if it is private or public. spl_autoload_register([ self::class, 'privateMethod' ]); // OK Example code: https://3v4l.org/lClJQ This case is applicable independent if method is static or not. My real case is that I am initializing a static method that will register some shutdowns events (that are static methods too). This shutdown function should be private, to avoid execution at a public scope. As workaround I am keeping it as public. So, there are some reason to it do not works like spl does? -- David Rodrigues

« previous php.internals (#107875) next »