it fails here too:
search(({ "3","4","5","1","2","3",7,3 }), 9);
Compiler Error: 1:Bad argument 2 to search. Compiler Error: 1:Expected: function(string, string | int, void | int : int) | function(array((0=mixed)), 0, void | int : int) | function(mapping((1=mixed):(2=mixed)), 2, void | 1 : 1) | !(function(!array, mixed, void | int : mixed) | function(!mapping, mixed, void | int : mixed)) & function(mapping | array, mixed, void | int : zero) Compiler Error: 1:Got : function(array(int(3..3) | int(7..7) | string), int(9..9) : void | mixed)
the problem does go away if i put the array into a variable, (but i am trying to think of a case where i would not want to do that ;-)