<?php
class Calculator {
public function calc($v) {
return $v + 1;
}
}
class MyCalculator extends Calculator {
public function calc($v1, $v2 = 0) {
return parent::calc($v1) + $v2;
}
}
function calcArray(array $values, Calculator $calculator) {
foreach ($values as &$v) {
$v = $calculator->calc($v, $v); // Second aregument is wrong !!
}
return $values;
}
$ar = [1,2,3];
var_dump(calcArray($ar, new Calculator)); // ignores the second argument
var_dump(calcArray($ar, new MyCalculator)); // UNEXPECTED: the second argument will be used
Parse error: syntax error, unexpected '[' in /in/U2lnf on line 22
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/U2lnf on line 15
Process exited with code 255.
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/U2lnf 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/U2lnf 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/U2lnf on line 4
Process exited with code 255.