日期:2014-05-17 浏览次数:20557 次
class Action {
function a(){
function b(){
echo 123;
}
}
function c(){
//这怎么调用a方法里的b方法???
b();
}
}
$p = new Action;
$p->a();
$p->c();//123
b();//123
------解决方案--------------------
哎 你这种写法有时候很容易出错。
你想c函数用b函数,那么在用之前你必须初始化a() .
因为a()内部对php而言是灰色的 php不知道a()里面有个b()
所以你不初始化a() 就用b() 肯定会出错。
正确的调用是先a() 在c()。
------解决方案--------------------
PHP一大特点,也算是悲剧就是函数定义没有作用域,放哪里都行,只要出现过。
------解决方案--------------------
class Action {
function a(){
$this->b();
}
//把b()函数抽出来吧
function b(){
}
function c(){
//这怎么调用a方法里的b方法???
$this->b();
}
}