如何从函数中回显变量

时间:2010-06-23 12:49:48

标签: php

如何从函数中回显变量?这是一个示例代码。

function test() {
  $foo = 'foo';   //the variable
}

test();   //executing the function

echo $foo;   // no results in printing it out

5 个答案:

答案 0 :(得分:13)

您问题的直接答案是将$foo导入函数的范围:

function test() {

  global $foo;
  $foo = 'foo';   //the variable
}

有关PHP here中变量范围的更多信息。

然而,在大多数情况下,这是不好的做法。您通常希望从函数返回所需的值,并在调用函数时将其分配给$foo

   function test()
    { 
      return "foo"; 
     }

   $foo = test();

   echo $foo;  // outputs "foo"

答案 1 :(得分:3)

变量寿命范围就在函数内部。您需要将其声明为全局,以便能够在函数外部访问它。

你可以这样做:

function test() {
  $foo = 'foo';   //the variable
  echo $foo;
}

test();   //executing the function

或按照建议将其声明为全球。要做到这一点,请看这里的手册: http://php.net/manual/en/language.variables.scope.php

答案 2 :(得分:2)

function test() {
  return 'foo';   //the variable
}

$foo = test();   //executing the function

echo $foo;

答案 3 :(得分:2)

您的$foo变量在函数外部不可见,因为它仅存在于函数的范围内。您可以通过以下几种方式做到:

来自函数本身的回声:

function test() {
    $foo = 'foo';
    echo $foo;
}

回复结果:

function test() {
    $foo = 'foo';   //the variable
    return $foo;
}

echo test();   //executing the function

使变量成为全局

$foo = '';

function test() {
    Global $foo;
    $foo = 'foo';   //the variable
}

test();   //executing the function

echo $foo;

答案 4 :(得分:0)

就我个人而言。

function test(&$foo)
{
    $foo = 'bar';
}

test($foobar);

echo $foobar;

使用函数参数部分中的&符号告诉函数“全球化”输入变量,因此对该变量的任何更改都将直接更改函数范围之外的变量!