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

amo*_*mof -2 php

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

附注。请不要教我不使用全局变量。

编辑:

这不起作用:

$jobID = mysql_insert_id();

function someFunction() {
     global $jobID;
     echo $jobID;
}
Run Code Online (Sandbox Code Playgroud)

这样做:

$jobID = mysql_insert_id();

function someFunction($jobID) {
     echo $jobID;
}
Run Code Online (Sandbox Code Playgroud)

已修复 使用注册全局变量:此功能自 PHP 5.3.0 起已弃用,自 PHP 5.4.0 起已移除。 http://php.net/manual/en/security.globals.php

Hac*_*man 5

这可能:

 $GLOBALS['jobID'] = 12; 

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

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

someFunction(); //testing
Run Code Online (Sandbox Code Playgroud)

萨鲁多斯 ;)

  • PHP 没有这样的全局变量。它具有全球范围。在任何函数或回调之外声明的变量都隐式地保存在那里。当原始赋值 `$jobID = 12;` 发生在任何函数/方法中时,它就存在于局部作用域中(除非使用了 `global` 关键字)。这就是 OP 发生的事情,但不会放过。 (2认同)