class my_class {
    var $name;
    function __construct( $name ) {
        $this->name = $name;
    }
    
    function test (){
        return $this->name;
    }
    
    function test2 () {
        $test = $this->test;
        return $test.'my_class';
    }
}class test extends my_class {
    function test(){
        return $this->name;
    }
}
$my_class = new my_class('abc');
echo $my_class->test();这个为什么输出不了 abc而把test类里面的test()方法去掉就可以输出abc这个属性了?子类里面的test应该是继承了所有的my_class里的东西了?我只是重写了test这个方法呀?为什么无效呢?请求帮助,谢谢

解决方案 »

  1.   

    class my_class { 
        var $name; 
        function __construct( $name ) { 
            $this->name = $name; 
        } 
        
        function test (){ 
            return $this->name; 
        } 
        
        function test2 () { 
            $test = $this->test; 
            return $test.'my_class'; 
        } 
    } class test extends my_class { 
        function test(){ 
            return $this->name; 
        } 

    $my_class = new test('abc'); 
    echo $my_class->test(); 这样的,调用子类访问abc不能输出,用基类访问是可以的