如何在 PHP 中动态创建全局变量
How to Create Global Variable Dynamically in PHP
我需要通过动态函数在 PHP 中创建一些全局变量,以便在函数外使用
我试过了
<?php
function setthis(newglobal){
global $_.newglobal._1;
$_.newglobal._1 = "pampam";
}
setthis();
echo $_newglobal_1;
?>
我收到了这个错误
行:2,错误类型:4
Message : syntax error, unexpected ')', expecting '&' or variable
(T_VARIABLE)
我也试过用引号把它们包装起来,比如
<?php
function setthis(newglobal){
global $_.'newglobal'._1;
$_newglobal_1 = "pampam";
}
setthis();
echo $_newglobal_1;
?>
我收到错误消息
: syntax error, unexpected ')', expecting '&' or variable
(T_VARIABLE)
你能告诉我这在 PHP 中是否可行吗?或者我做错了什么?
Update
<?php
function setthis($name){
$GLOBALS[$name];
$name = "pampam";
}
setthis();
echo $name;
?>
你的错误总是在函数头中:
function setthis(newglobal){
//^^^^^^^^^ needs a '$' in front of it
然后简单地使用$GLOBALS
数组,例如
function setthis($name, $value = "pampam"){
$GLOBALS[$name] = $value;
}
您可以使用括号设置动态变量名称:
$name = 'key';
${$name} = 'value';
echo $key; // Will echo 'value'
如此处所述:
Dynamic variable names in PHP
您的代码将类似于:
<?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 的 GLOBALS 数组,该数组可用(全局):
<?php
function setthis($global_key, $global_value){
$GLOBALS[ $global_key ] = $global_value;
}
setthis('newglobal', 'pampam value');
echo $GLOBALS['newglobal']; // Will echo 'pampam value'
?>
有关所有这些的信息都在 PHP 文档中:http://php.net/manual/en/language.variables.scope.php
我需要通过动态函数在 PHP 中创建一些全局变量,以便在函数外使用
我试过了
<?php
function setthis(newglobal){
global $_.newglobal._1;
$_.newglobal._1 = "pampam";
}
setthis();
echo $_newglobal_1;
?>
我收到了这个错误
行:2,错误类型:4
Message : syntax error, unexpected ')', expecting '&' or variable (T_VARIABLE)
我也试过用引号把它们包装起来,比如
<?php
function setthis(newglobal){
global $_.'newglobal'._1;
$_newglobal_1 = "pampam";
}
setthis();
echo $_newglobal_1;
?>
我收到错误消息
: syntax error, unexpected ')', expecting '&' or variable (T_VARIABLE)
你能告诉我这在 PHP 中是否可行吗?或者我做错了什么?
Update
<?php
function setthis($name){
$GLOBALS[$name];
$name = "pampam";
}
setthis();
echo $name;
?>
你的错误总是在函数头中:
function setthis(newglobal){
//^^^^^^^^^ needs a '$' in front of it
然后简单地使用$GLOBALS
数组,例如
function setthis($name, $value = "pampam"){
$GLOBALS[$name] = $value;
}
您可以使用括号设置动态变量名称:
$name = 'key';
${$name} = 'value';
echo $key; // Will echo 'value'
如此处所述: Dynamic variable names in PHP
您的代码将类似于:
<?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 的 GLOBALS 数组,该数组可用(全局):
<?php
function setthis($global_key, $global_value){
$GLOBALS[ $global_key ] = $global_value;
}
setthis('newglobal', 'pampam value');
echo $GLOBALS['newglobal']; // Will echo 'pampam value'
?>
有关所有这些的信息都在 PHP 文档中:http://php.net/manual/en/language.variables.scope.php