我正在尝试在回调函数中使用$variable
。我将它传递给另一个函数:functionName("egTraders_ItemDataBound")
,在该函数内部我将它分配给变量并调用它如下:$theAssignedFunctionVariable($this, $rowToAdd);
函数egTraders_ItemDataBound
被正确调用但变量$variable
未定义。我该怎么办?
<?php
$variable = "var";
function egTraders_ItemDataBound($sender, $param1) {
echo $variable;
}
?>
答案 0 :(得分:8)
如果您运行的是PHP 5.3+,只需使用use keyword(documentation)创建匿名函数即可实现此目的:
$bar = 'bar';
$f = function() use ($bar)
{
var_dump($bar);
};
function bar( $fName )
{
$fName();
}
bar($f);
答案 1 :(得分:3)
您可以将其作为参数传递,或者您可以将其用作函数中的全局。我不推荐后者。你应该远离全局。
编辑例如
$variable = "var";
function egTraders_ItemDataBound($sender, $param1) {
global $variable;
echo $variable;
}
egTraders_ItemDataBound(NULL, NULL);
答案 2 :(得分:0)
您需要将变量声明为global
,因为它超出了范围
$variable = "var";
function egTraders_ItemDataBound($sender, $param1) {
global $variable;
echo $variable;
}
答案 3 :(得分:0)
变量声明在函数范围之外。你应该重新审视你的设计。我强烈建议不要使用全局变量,因为这是不好的做法。