全局变量在PHP CLI中不起作用

时间:2013-02-25 20:23:28

标签: php

遇到问题,我的代码在使用apache运行时工作正常,但是当我通过CLI运行时,它无法看到此变量$ jobID。有什么想法吗?

PS。请不要让我学习不使用全局变量。

编辑:

这不起作用:

$jobID = mysql_insert_id();

function someFunction() {
     global $jobID;
     echo $jobID;
}

这样做:

$jobID = mysql_insert_id();

function someFunction($jobID) {
     echo $jobID;
}

固定 使用Register Globals:从PHP 5.3.0开始,此功能已被弃用,自PHP 5.4.0起已被删除。 http://php.net/manual/en/security.globals.php

3 个答案:

答案 0 :(得分:3)

这可能是:

 $GLOBALS['jobID'] = 12; 

//Thats the way to initialize the var...and in the function:

function someFunction() {
  echo $GLOBALS['jobID'];
}

someFunction(); //testing

Saludos;)

答案 1 :(得分:0)

不要使用global,通过函数调用传递参数,因为[see this],例如: 变化:

function someFunction() {
     global $jobID;
     echo $jobID;
}

为:

function someFunction($arg1) {
     echo $arg1;
}
$anyvar = 'some value';
someFunction($anyvar);

答案 2 :(得分:0)

PHP将命令行参数存储在$ argv数组中,而不是将参数扩展为纯变量。这种扩展是旧PHP版本经常使用的不良行为,因此不要使用它,而是使用$ argv数组来访问参数。