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