PHP语法问题:global $ argv,$ argc;

时间:2010-05-07 17:49:59

标签: php

所以我有一个PHPUnit测试,并在函数中找到了这段代码。

global $argv, $argc;
echo $argc;
print_r($argv);

我理解这些变量代表什么(从命令行传递的参数),但我以前从未见过这种语法:global $argv, $argc;

这里具体是什么?

4 个答案:

答案 0 :(得分:3)

global关键字告诉PHP使用变量的全局范围版本,并使其对当前范围可见,这样在函数/类外部声明的变量也可以在它们内部访问。

否则,尝试读取/分配这些变量将改为在它们的不同本地版本上运行。

比较

$foo = 1;

function test() {
    $foo = 2;
}

echo $foo; // prints 1

...对比

$foo = 1;

function test() {
    global $foo;
    $foo = 2;
}

echo $foo; // prints 2

答案 1 :(得分:3)

在Java等语言中,它们允许您在一行上用逗号分隔多个相同类型的变量。

int sum, counter, days, number;

如果没有IDE来测试代码,我会对PHP说同样的问题,它只是将这两个变量声明为global。你可以在两条单独的行上单独写出它们,

global $argv;
global $argc;

答案 2 :(得分:2)

argvarc是从命令行运行PHP脚本时传递的参数。据我所知,这些变量永远不会出现在使用HTTP。

请参阅PHP手册中的argcargv条目。

其他人已经解释了全球的意义。逗号只是对类似的声明进行分组。

例如,这一行会为一个类声明一堆私有变量:

private $name, $email, $datejoined;

与写作相同:

private $name;
private $email;
private $datejoined;

答案 3 :(得分:1)

global关键字生成指定的变量..好的全局变量,可以从该文件中的任何位置访问。