日期:2014-05-17  浏览次数:20471 次

php类里的方法怎么访问同类其他方法里的方法?
class Action {

function a(){
  function b(){

}
}

function c(){
//这怎么调用a方法里的b方法???
}

}

------解决方案--------------------
千万别这样写,有什么想不开的问题,一定要这样折腾呢? 说出来,大家一起帮你想个办法。 别想不开追这种牛角尖~
------解决方案--------------------
没有什么大不了的
PHP code
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一大特点,也算是悲剧就是函数定义没有作用域,放哪里都行,只要出现过。
------解决方案--------------------
PHP code

class Action {
    function a(){
        $this->b();    
    }
        //把b()函数抽出来吧
    function b(){
    }
    function c(){
    //这怎么调用a方法里的b方法???
        $this->b();
    }
}