我如何使这个PHP工作?

时间:2018-05-15 11:13:47

标签: php

我希望下面会打印

live
got here
而是打印

got here

代码:

$config['env'] = 'live';

sayEnvironment();

function sayEnvironment () {

  echo $config['env'];
  echo 'got here';

}

如何设置此全局变量并让函数内的所有内容都可以访问它?

3 个答案:

答案 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

Sample

答案 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