-1

遇到一个问题,我的代码在使用 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

4

3 回答 3

5

这可能是:

 $GLOBALS['jobID'] = 12; 

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

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

someFunction(); //testing

萨卢多斯 ;)

于 2013-02-25T20:42:33.860 回答
1

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

于 2013-02-25T20:30:38.843 回答
0

不要使用全局,通过函数调用传递您的参数,因为 [ see this ],例如:更改:

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

到:

function someFunction($arg1) {
     echo $arg1;
}
$anyvar = 'some value';
someFunction($anyvar);
于 2013-02-25T20:26:13.623 回答