遇到问题,我的代码在使用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
答案 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数组来访问参数。