我希望下面会打印
live
got here
而是打印
got here
代码:
$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
echo $config['env'];
echo 'got here';
}
如何设置此全局变量并让函数内的所有内容都可以访问它?
答案 0 :(得分:3)
使用void removeDuplicate(vector<pair<string, string>>& a, vector<pair<string, string>>& b) {
//Add these two lines if there can be duplicates in a or b themselves.
//a.erase(std::unique(a.begin(), a.end()), a.end());
//b.erase(std::unique(b.begin(), b.end()), b.end());
size_t i = 0;
size_t j = 0;
size_t p1 = 0;
size_t p2 = 0;
while(i < a.size() && j < b.size()) {
if(a[i] == b[j]) {
i++;
j++;
} else if (a[i] > b[j]) {
b[p2++] = b[j++];
} else if (b[j] > a[i]) {
a[p1++] = a[i++];
}
}
while(i < a.size()) {
a[p1++] = a[i++];
}
while(j < b.size()) {
b[p2++] = b[j++];
}
a.erase(a.begin()+p1, a.end());
b.erase(b.begin()+p2, b.end());
}
在函数内使用全局变量:
global
或者,如果您有匿名功能,则可以使用$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
global $config;
echo $config['env'];
echo 'got here';
}
:
use
答案 1 :(得分:1)
你去,
$config['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
global $config;
echo $config['env'];
echo 'got here';
}
答案 2 :(得分:0)
要回答您的问题,您可以使用PHP $GLOBALS
:
<?php
$GLOBALS['config']['env'] = 'live';
sayEnvironment();
function sayEnvironment () {
echo $GLOBALS['config']['env'];
echo 'got here';
}
虽然这并不是一个很好的做法,但不知道你的目标是什么,很难建议另一种方法。通常某种形式的依赖注入会更好。
Docs for it:http://php.net/manual/en/reserved.variables.globals.php