dsgdfh302506 2018-07-03 19: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 19: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条)

报告相同问题?

悬赏问题

  • ¥15 python变量和列表之间的相互影响
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)