无法为全局变量赋值

时间:2015-09-18 00:07:40

标签: php

我有一个像

这样的全局变量
<?PHP
function PrintVariable($str){
   global ${"check" . $str} = "some value";
   echo  $checkmap;    
}
 PrintVariable('map');

但是我收到了这个错误:

解析错误:语法错误,意外'=',期待','或';'在第3行的C:\ wamp \ www \ PHP \ index.php

从代码中删除global后,一切正常,但我必须在此函数中创建global

2 个答案:

答案 0 :(得分:3)

php中没有组合“声明全局和赋值”语句 你必须分两步完成,例如

<?php
function foo($str) {
    global ${"check" . $str};
    ${"check" . $str} = "some value";
}

foo('bar');
echo $checkbar;

...但你真正应该做的是:避免全局。

答案 1 :(得分:3)

使用“全局”关键字,您只能引用变量,而不能设置其值。

您的代码将是:

<?PHP
function PrintVariable($str){
   global ${"check" . $str};
   ${"check" . $str} = "some value";
   echo  $checkmap; // outputs: some value
}
PrintVariable('map');
echo  $checkmap; // outputs: some value

请参阅:

http://php.net/language.variables.scope

Configuration class - Get configuration array from the function string argument