<?php
class A {
protected $name;
public function __construct($name)
{
$this->name = $name;
}
public function isTest()
{
return $this->name === 'test';
}
}
$things = array();
$things[] = new A('aaa');
$things[] = new A('bbb');
$things[] = new A('test');
$things[] = new A('ddd');
var_dump(array_filter($things, array('$this', 'isTest')));
Fatal error: Uncaught TypeError: array_filter(): Argument #2 ($callback) must be a valid callback or null, class "$this" not found in /in/ScUh1:24
Stack trace:
#0 /in/ScUh1(24): array_filter(Array, Array)
#1 {main}
thrown in /in/ScUh1 on line 24
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught TypeError: array_filter(): Argument #2 ($callback) must be a valid callback or null, class "$this" not found in /in/ScUh1:24
Stack trace:
#0 /in/ScUh1(24): array_filter(Array, Array)
#1 {main}
thrown in /in/ScUh1 on line 24
Process exited with code 255.
Output for 8.0.0 - 8.0.30
Fatal error: Uncaught TypeError: array_filter(): Argument #2 ($callback) must be a valid callback, class "$this" not found in /in/ScUh1:24
Stack trace:
#0 /in/ScUh1(24): array_filter(Array, Array)
#1 {main}
thrown in /in/ScUh1 on line 24
Process exited with code 255.
Warning: array_filter(): The second argument, '$this::isTest', should be a valid callback in /in/ScUh1 on line 24
NULL
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/ScUh1 on line 4
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/ScUh1 on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/ScUh1 on line 4
Process exited with code 255.