dsgdfh302506 2018-07-03 11:50
浏览 109
已采纳

如何从PHP中的另一个文件替换方法值?

I have a class in fileA.php like so:

class Test {
    private foo;

    public function array() {
        $this->$foo = array ( 'a', 'b', 'c', 'd', 'e' );
        return $foo;
    }
}

I want to change the array returned by the method to:

array('x', 'y', 'z')

Not sure if this the right way to about it, but this is what I tried in fileB.php:

require_once('fileA.php');

class TestB extends Test {    
     public function array() {
        $this->$foo = array('x', 'y', 'z');
        return $foo;
     }
 }

Is it possible to make this modification? Any help will be greatly appreciated.

Thanks

  • 写回答

2条回答 默认 最新

  • douhoulei4706 2018-07-03 11:54
    关注

    $foo is a private property so you cannot access it from any child classes. Only protected and public properties can be accessed from child classes.

    Since array() is a public method, you can overwrite that method and return a different array without modifying or accessing $foo.

    class TestB extends Test {    
         public function array() {
            return array('x', 'y', 'z');
         }
    }
    

    But this would not affect foo for any other methods that use it.

    Keep in mind, you must access class properties from within methods as $this->name (ex. $this->foo), not $foo or $this->$foo.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部