请注意,在尝试访问类方法时,需要声明 $argv 和 $argc 为全局变量。
<?php
class A
{
public static function b()
{
var_dump($argv);
var_dump(isset($argv));
}
}
A::b();
?>
将输出 NULL bool(false) 以及 “未定义变量...” 的通知。
而 global $argv 则可以解决这个问题。
(PHP 4, PHP 5, PHP 7, PHP 8)
$argv — 传递给脚本的参数数组
包含一个 数组,其中包含从 命令行 运行脚本时传递的所有参数。
注意: 第一个参数 $argv[0] 始终是用于运行脚本的名称。
注意: 当 register_argc_argv 被禁用时,此变量不可用。
示例 #1 $argv 示例
<?php
var_dump($argv);
?>
使用以下命令执行示例:php script.php arg1 arg2 arg3
上面的示例将输出类似以下内容
array(4) { [0]=> string(10) "script.php" [1]=> string(4) "arg1" [2]=> string(4) "arg2" [3]=> string(4) "arg3" }
注意:
它也可以作为 $_SERVER['argv'] 使用。
请注意,在尝试访问类方法时,需要声明 $argv 和 $argc 为全局变量。
<?php
class A
{
public static function b()
{
var_dump($argv);
var_dump(isset($argv));
}
}
A::b();
?>
将输出 NULL bool(false) 以及 “未定义变量...” 的通知。
而 global $argv 则可以解决这个问题。
要使用 $_GET,这样就不需要同时支持命令行和 Web 浏览器。
foreach ($argv as $arg) {
$e=explode("=",$arg);
if(count($e)==2)
$_GET[$e[0]]=$e[1];
else
$_GET[$e[0]]=0;
}
有时 $argv 可能为空,例如当 “register-argc-argv” 设置为 false 时。在某些情况下,我发现当从命令行(或 cron)运行 “php-cli” 而不是只运行 “php” 时,变量被正确填充。