我尝试在 Windows 10 中使用 XAMPP 作为本地主机时从命令行执行 PHP 脚本。
从 Windows 10 上的 Git 终端应用程序中,我运行以下命令:
/c/xampp/php/php.exe /path/to/script/script.php arg1=val1
脚本执行正确,但是当我尝试执行以下操作时:
print_r($argv);
我收到以下错误:
PHP Notice: Undefined variable: argv in /path/to/script/script.php on line line-#.
此外,
php_sapi_name()
返回cli
,所以我应该很好,但是$argv
和$argc
都返回为未定义。
有人知道为什么吗?谢谢。
正如 PHP 文档所说,
$argv
和 $argc
变量未定义,除非通过 php.ini
的 register_argc_argv 显式启用此类功能,因此请先检查您的配置文件。
但是,我宁愿建议保持
register_argc_argv
选项关闭,并建议您的代码使用 $_SERVER['argv']
/ $_SERVER['argc']
代替,而不是依赖于可配置的运行时环境。这将起作用,因为 $_SERVER
超级全局也在 CLI 模式下填充,并且无论 register_argc_argv
配置的状态如何,这些键始终存在。