如果設置了函數參數類型,並且將錯誤類型的參數傳遞給此函數,則會觸發錯誤。問題是這個錯誤不會被運算符@
所抑制。準確地說,錯誤消息是靜音的,但執行仍然停止。如何抑制無效函數參數錯誤?
function callback(DateTime $arg) {
return 'Success';
}
function doAction(callable $callback) {
$value = 'Empty';
$value = @$callback(123);
var_dump($value); // Expect `Empty` or NULL here
}
doAction('callback');
在PHP 7中,這個錯誤可以通過try-catch來捕獲。
如何使此錯誤不停止在PHP 5.x.x上執行?
你可以隨時修復錯誤... –
@JonStirling,這個例子儘可能簡單。 「測試」功能可能會有所不同,例如,如果它是回調。 – Finesse
我不認爲這改變了我的評論。 –