日期:2014-05-17 浏览次数:20471 次
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(); } }