我尝试调用Test3函数,但返回此错误:“致命错误:调用未定义函数”。
以下是一个例子:
class Test {
public Test1(){
return $this->Test2();
}
private Test2(){
$a = 0;
return Test3($a);
function Test3($b){
$b++;
return $b;
}
}
}
如何调用Test3函数?
答案 0 :(得分:6)
PHP中的所有函数和类都具有全局范围 - 即使它们是在内部定义的,也可以在函数外部调用它们,反之亦然。
使用闭包
$test = new Test();
echo $test->Test1();
修改后的课程
class Test {
public function Test1() {
return $this->Test2();
}
private function Test2() {
$a = 0;
$Test3 = function ($b) {
$b ++;
return $b;
};
return $Test3($a);
}
}
答案 1 :(得分:0)
不确定您是否需要closure
或者您的'内部'功能是否是拼写错误。
如果它是一个单独的方法,那么下面是正确的语法:
class Test
{
public function Test1()
{
return $this->Test2();
}
private function Test2()
{
$a = 0;
return $this->Test3($a)
}
public function Test3($b)
{
$b++
return $b;
}
}