对函数中的字符串到var(使用大括号)感到困惑

  • 本文关键字:函数 字符串 var php
  • 更新时间 :
  • 英文 :


有人能告诉我为什么这样做吗(它的回声是"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");

相关内容

最新更新