PHP 5.6 (xampp) 顯示警告而不是拋出 ArgumentCountError

PHP 5.6 (xampp) 顯示警告而不是拋出 ArgumentCountError

我正在從 cli 運行一些 php 腳本。我使用 xampp 安裝 php,路徑為 var /c/xampp/php。當我想在 php5 和 7 等之間切換時,我傾向於透過重命名已安裝的 xampp 資料夾來交換版本。

最近刪除了我的 php5.6 並不得不重新安裝它。現在,由於某種原因,我可以運行任何函數,而無需傳遞所需的參數,並且我只會收到警告,而不是停止執行的異常。

例如。

    <?php
function someFunction($required_param){
    if (!isset($required_param)) die('WTF! Param was not passed in yet im allowed to execute!');
}
someFunction();

//結果為

$ php test/test.php
PHP Warning:  Missing argument 1 for someFunction(), called in C:\repo\php5\orm\test\test.php on line 5 and defined in C:\repo\php5\orm\test\test.php on line 2

Warning: Missing argument 1 for someFunction(), called in C:\repo\php5\orm\test\test.php on line 5 and defined in C:\repo\php5\orm\test\test.php on line 2
WTF! Param was not passed in!

這真是奇怪的行為。我從未見過 php 允許在沒有所需參數的情況下呼叫函數。

有什麼想法怎麼會發生這種情況嗎?

PS-另請注意,即使我禁用日誌錯誤或顯示錯誤以僅獲得單個錯誤輸出,它也會輸出兩次錯誤。 (上面的範例沒有在運行時設定任何錯誤處理,只是您所看到的運行)

答案1

早期版本的 PHP 在遇到 ArgumentCountError 時會發出警告。

現在,至少從 v7.1 開始它會引發 Error 異常。

PHP 文件

相關內容