我正在从 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-还要注意,即使我禁用日志错误或显示错误以仅获取单个错误输出,它也会输出两次错误。(上面的例子没有在运行时设置任何错误处理,只是您看到的运行)