有人能告诉我为什么这样做吗(它的回声是"poo"):
$input = "wee";
$val = "poo";
${$input} = $val;
echo $wee;
但事实并非如此:
function bodily($input) {
$val = "poo";
${$input} = $val;
}
bodily("wee");
echo $wee;
我想用这种方法来玩一些$_POST变量。请告诉我,如果我能解释更多。。。干杯
您的变量$wee
仅在函数bodily()
的范围内定义。未在此函数之外进行定义。
您可以将其设为global
,无论如何,这对于实际应用程序来说不是一个有用的模式:
function bodily($input) {
$val = "poo";
global ${$input}; // make your $wee defined in the global scope
${$input} = $val;
}
bodily("wee");
echo $wee;
输出
poo
因为变量是在函数内部本地定义的。让函数返回值,并将其赋给函数之外的变量。
因为函数内部的变量不能从外部访问,除非在函数内部使用"global$var"或通过类似引用的函数(&$var)传递。。。为了让你的代码工作,你需要
<?php
function bodily($input) {
$val = "poo";
${$input} = $val;
echo $wee;
}
bodily("wee");