1

我有一堆 HTML 和 PHP 代码,在模板文件中它工作正常,但我试图把它放在 PHP 函数中,现在当我运行页面时出现错误Undefined variable: variableName

这是一些代码:

function testFunction()
{
    foreach ($variableName as $variable):
        echo 'tasf';
    endforeach;
}

在该函数内部$variableName找不到,但如果我将它移到该函数之外,它就可以找到。如果重要的话,我会在 symfony php 模板文件中执行此操作。

4

4 回答 4

3

变量范围的简单问题。如果该变量是在函数外部定义的,那么您需要将它传递到那里或将其声明为全局变量

在此处查看手册

于 2013-01-16T05:53:21.740 回答
3

PHP 变量范围

$str = 'Hello World';
echo $str; // works fine

function foo($bar){
    echo $bar; // passed as function argument. works fine
}

foo($str);

function bar(){
    global $str;
    echo $str; // passed from global. works fine
}
于 2013-01-16T05:53:35.393 回答
1

函数作用域意味着在函数内部引用的变量,必须在其中声明,或者传递...

function testFunction($variableName)
{
    foreach ($variableName as $variable):
        echo 'tasf';
    endforeach;
}

这是关于变量作用域的 PHP 手册的链接

在任何情况下,您都不应诉诸使用global变量。总是有更好的方法,这样做被认为是不好的做法。它使您的代码难以遵循,因为这意味着其他任何人都可能必须阅读所有代码才能了解正在发生的事情。

于 2013-01-16T05:57:41.890 回答
0

您需要使用global关键字来实现这一点。

global但是,应该谨慎使用,并且可能会产生意想不到的副作用。

于 2013-01-16T05:53:35.733 回答