dsf12313 2013-06-22 08:08
浏览 245
已采纳

如何在php的父类中使用protected?

In this tutorial(http://www.techflirt.com/tutorials/oop-in-php/visibility-in-php-classes.html), it is said:

Protected: Method or variable with protected visibility can only be access in the derived class. Or in other word in child class. Protected will be used in the process of inheritance.

here(http://php.net/manual/en/language.oop5.visibility.php) it is said:

protected can be accessed only within the class itself and by inherited and parent classes.

We often use Protected in inherited classes, So I wonder how does this work: protected be accessed by parent classes, can anyone give me an example? thanks.

  • 写回答

2条回答 默认 最新

  • duanlan4801 2013-06-22 08:15
    关注

    protected really allows any class in the inheritance chain access. There's only one case really where a child property or method would/should be accessed by a parent: the parent declares and calls a protected method and the child overrides it.

    class Foo {
    
        public function bar() {
            $this->baz();
        }
    
        protected function baz() { }
    
    }
    
    class Child extends Foo {
    
        protected function baz() {
            echo 'Ha!';
        }
    
    }
    

    When calling $child->bar(), this requires that Foo::bar can access Child::baz. A parent should not in any other way "know" about its children and hence have no need to access something of them.

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

报告相同问题?

悬赏问题

  • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题