Oba*_*bay 14 php variables scope global-variables
是的,我知道全局变量是一种不好的做法,但是为这个规则放宽了规则:P
我的代码:
include('something.php'); //where $from is declared
function myfunc() {
global $from;
echo "from(myfunc)=$from<br />";
...
}
echo "from=$from<br />";
myfunc();
Run Code Online (Sandbox Code Playgroud)
结果是:
from=2010-05-01
from(myfunc)=
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?:(
编辑:如果它有帮助,上面的所有代码都在CodeIgniter中的视图文件中(是的,我知道函数不应该在视图内部:P)
Pek*_*ica 25
我用这个片段打赌你不是全球范围内的啤酒.你是在一个函数中调用它吗?
在这种情况下,$from您定义的something.php不是全局的,而您在函数中引用的是.
如果在定义之前添加global $from;内部something.php,它可能会起作用$from.
毋庸置疑,无论如何,这都不是一个好习惯,你应该遵循戈登的建议.
Gor*_*don 14
帮自己一个忙,并使用依赖注入.
function myfunc($from) {
return "from(myfunc)=$from<br />";
}
$from = '2010-05-01';
echo myfunc($from);
Run Code Online (Sandbox Code Playgroud)
这样做会使您的代码更易于维护,更少耦合,更容易进行单元测试,因为它与全局范围隔离.另外,当你这样做时,人们会觉得你很酷.