Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中动态创建全局变量_Php_Php 5.6 - Fatal编程技术网

如何在PHP中动态创建全局变量

如何在PHP中动态创建全局变量,php,php-5.6,Php,Php 5.6,我需要通过函数动态地在PHP中创建一些全局变量,以便在函数外使用 我试过了 <?php function setthis(newglobal){ global $_.newglobal._1; $_.newglobal._1 = "pampam"; } setthis(); echo $_newglobal_1; ?> 我得到了这个错误 行:2,错误类型:4 消息:语法错误,意外“'),应为“&”或变量 (T_变量) 我还尝试将它们封装在引用的变量中,如 <?

我需要通过函数动态地在PHP中创建一些全局变量,以便在函数外使用

我试过了

<?php
function setthis(newglobal){
  global $_.newglobal._1;
  $_.newglobal._1 = "pampam";
}
setthis();

 echo $_newglobal_1;
?>

我得到了这个错误

行:2,错误类型:4

消息:语法错误,意外“'),应为“&”或变量 (T_变量)

我还尝试将它们封装在引用的变量中,如

<?php
function setthis(newglobal){
  global $_.'newglobal'._1;
  $_newglobal_1 = "pampam";
}
setthis();

 echo $_newglobal_1;
?>

我收到一条错误消息

:语法错误,意外“'),应为“&”或变量 (T_变量)

你能告诉我这在PHP中是否可行吗?或者我做错了什么

更新


您的错误总是出现在函数标题中:

function setthis(newglobal){
               //^^^^^^^^^ needs a '$' in front of it
然后简单地使用数组,例如

function setthis($name, $value = "pampam"){
    $GLOBALS[$name] = $value;
}

可以使用括号设置动态变量名称:

$name = 'key';
${$name} = 'value';
echo $key; // Will echo 'value'
如下所述:

您的代码看起来像:

<?php

function setthis($global_key, $global_value){
  global ${"_" . $global_key . "_1"};

  ${"_" . $global_key . "_1"} = $global_value;
}

setthis('newglobal', 'pampam value');

echo $_newglobal_1; // Will echo 'pampam value'

?>

或者您可以使用PHP的全局数组,该数组可用(全局):



PHP文档中有关于所有这些的信息:

为什么总是在函数头中?@Kenney,因为在两次尝试中,OP都忘记了用美元符号表示变量,所以他在两个代码示例中都出现了错误。我不明白
$\uu.newglobal.\u 1
看起来也不应该编译。谢谢,但我仍然在示例中遇到错误。你能看一下更新吗?
<?php

function setthis($global_key, $global_value){
  global ${"_" . $global_key . "_1"};

  ${"_" . $global_key . "_1"} = $global_value;
}

setthis('newglobal', 'pampam value');

echo $_newglobal_1; // Will echo 'pampam value'

?>
<?php

function setthis($global_key, $global_value){
  $GLOBALS[ $global_key ] = $global_value;
}

setthis('newglobal', 'pampam value');

echo $GLOBALS['newglobal']; // Will echo 'pampam value'

?>