3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { private $value = 'HI'; public function filter_callable(callable $p) { return $p($this); } public function filter_closure(\Closure $p) { return $p($this); } private function getValue() { return $this->value; } } $foo = new Foo(); echo $foo->filter_callable([$foo, 'getValue']); echo $foo->filter_closure(function($p) { return $p->getValue(); });
Output for 8.0.0 - 8.0.8
HI Fatal error: Uncaught Error: Call to private method Foo::getValue() from global scope in /in/7TSf2:27 Stack trace: #0 /in/7TSf2(14): {closure}(Object(Foo)) #1 /in/7TSf2(28): Foo->filter_closure(Object(Closure)) #2 {main} thrown in /in/7TSf2 on line 27
Process exited with code 255.
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.28, 7.4.0 - 7.4.21
HI Fatal error: Uncaught Error: Call to private method Foo::getValue() from context '' in /in/7TSf2:27 Stack trace: #0 /in/7TSf2(14): {closure}(Object(Foo)) #1 /in/7TSf2(28): Foo->filter_closure(Object(Closure)) #2 {main} thrown in /in/7TSf2 on line 27
Process exited with code 255.

preferences:
124.75 ms | 461 KiB | 5 Q