函数的变量不在函数外部显示

时间:2012-10-17 14:01:50

标签: php

我无法获取函数外部函数的变量值...

示例:

function myfunction() {
    $name = 'myname';
    echo $name;
}

然后我称之为......

if (something) {
    myfunction();
}

这回显$name,但如果我尝试在输入值内回显$name,则不会显示:

<input type="text" name="name" value="<?php echo $name ?>"

如何访问此变量值?

5 个答案:

答案 0 :(得分:2)

$name变量是本地变量,直到您明确将其定义为global:

function myfunction() {
    global $name;
    $name = 'myname';
    echo $name;
}

但这似乎不是一个很好用的全局变量。你的意思是返回值并分配它吗? (或者只使用一次?)

function myfunction() {
    $name = 'myname';
    return $name;
}

...
$name = myfunction();

答案 1 :(得分:0)

了解variable scope 变量具有局部范围。你必须使它成为全球性的。但更好的是,使用一些模板引擎或实现Registry

答案 2 :(得分:0)

这是范围问题..

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

就像你在一个封闭的房间里一样,我们无法看到你做了什么,但是如果你打开一扇门,或者放入摄像机,人们可以,或者可以看到有限的东西,或听到有限的东西......这个是计算机中的东西也是如此

答案 3 :(得分:0)

您应该阅读有关scope

的php页面

要做你想做的事,有两种解决方案:

  1. $name设为全局或
  2. return函数
  3. 中的变量

答案 4 :(得分:0)

$name变量在该函数中是本地的。所以它只能在该函数内部访问。如果您希望它可以在任何地方访问,您可以执行以下操作:

  • 在函数外部和函数类型中声明它:global $name;
  • 仍然在外面声明它,但是通过引用将她作为函数参数传递:

    function myFunc(&$name) { $name = "text"; }