如何从函数中回显变量?这是一个示例代码。
function test() { $foo = 'foo'; //the variable } test(); //executing the function echo $foo; // no results in printing it out
答案 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;
使用函数参数部分中的&符号告诉函数“全球化”输入变量,因此对该变量的任何更改都将直接更改函数范围之外的变量!