[英]How Do I Get This PHP Working?
我希望下面会打印
live
got here
而是打印
got here
编码:
$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
echo $config['env'];
echo 'got here';
}
如何设置此全局变量并使函数中的所有内容都可以访问它?
使用global
在函数内部使用全局变量:
$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
global $config;
echo $config['env'];
echo 'got here';
}
或者,如果您具有匿名功能,则可以使用use
:
$sayEnvironment2 = function () use ($config) {
echo $config['env'];
echo 'got here';
};
$sayEnvironment2(); // must be called AFTER php parser has seen actual function.
干得好,
$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
global $config;
echo $config['env'];
echo 'got here';
}
要回答您的问题,您可以为此使用PHP $GLOBALS
:
<?php
$GLOBALS['config']['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
echo $GLOBALS['config']['env'];
echo 'got here';
}
尽管执行上述操作并不是真正的好习惯,但是在不知道您要达到的目的的情况下,很难建议另一种方法。 通常,某种形式的依赖注入会更好。
Docs: http : //php.net/manual/zh/reserved.variables.globals.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.