0

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

例子:

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

那我叫它...

if (something) {
    myfunction();
}

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

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

如何访问此变量值?

4

5 回答 5

2

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

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

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

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

...
$name = myfunction();
于 2012-10-17T14:03:16.030 回答
0

阅读 abour变量作用域 变量具有局部作用域。你必须让它全球化。但更好的是,使用一些模板引擎或实现注册表

于 2012-10-17T14:03:38.383 回答
0

它的范围问题..

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

就像你在一个封闭的房间里,我们看不到你在做什么,但如果你打开一扇门,或者放入摄像机,人们可以,或者可以看到有限的东西,或者听到有限的东西......这就是事情的方式也适用于计算机

于 2012-10-17T14:04:12.503 回答
0

您应该阅读有关范围的 php 页面。

要执行您想要的操作,有两种解决方案:

  1. 使$name全局,或
  2. return函数中的变量
于 2012-10-17T14:04:21.020 回答
0

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

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

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

于 2012-10-17T14:06:52.547 回答