3v4l.org

run code in 300+ PHP versions simultaneously
<?php $template = ['A', 'B', 'C']; $myArray = [ new Element('B'), new Element('C'), new Element('A'), ]; class Element { public $name; public function __construct($name) { $this->name = $name; } } usort($myArray, function($a, $b) use ($template) { return array_search($template, $a) - array_search($template, $b); }); var_dump($myArray);
Output for 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Fatal error: Uncaught TypeError: array_search(): Argument #2 ($haystack) must be of type array, Element given in /in/FnY8k:22 Stack trace: #0 /in/FnY8k(22): array_search(Array, Object(Element)) #1 [internal function]: {closure}(Object(Element), Object(Element)) #2 /in/FnY8k(21): usort(Array, Object(Closure)) #3 {main} thrown in /in/FnY8k on line 22
Process exited with code 255.
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
Fatal error: Uncaught TypeError: array_search(): Argument #2 ($haystack) must be of type array, Element given in /in/FnY8k:22 Stack trace: #0 /in/FnY8k(22): array_search(Array, Object(Element)) #1 [internal function]: {closure}(Object(Element), Object(Element)) #2 /in/FnY8k(23): usort(Array, Object(Closure)) #3 {main} thrown in /in/FnY8k on line 22
Process exited with code 255.
Output for 7.0.0 - 7.0.31, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 array(3) { [0]=> object(Element)#1 (1) { ["name"]=> string(1) "B" } [1]=> object(Element)#2 (1) { ["name"]=> string(1) "C" } [2]=> object(Element)#3 (1) { ["name"]=> string(1) "A" } }
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38
Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 Warning: array_search() expects parameter 2 to be array, object given in /in/FnY8k on line 22 array(3) { [0]=> object(Element)#3 (1) { ["name"]=> string(1) "A" } [1]=> object(Element)#2 (1) { ["name"]=> string(1) "C" } [2]=> object(Element)#1 (1) { ["name"]=> string(1) "B" } }

preferences:
324.27 ms | 403 KiB | 365 Q