Php继承

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Php继承脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_360_0@ 我正在使用 PHP 5.3稳定版本,有时我会遇到非常不一致的行为.据我所知,在继承中,超类中的所有属性方法(私有,公共和受保护)都是传递子类.
class Foo
{
    PRivate $_name = "foo";
}
class Bar extends Foo
{
    public function getName()
    {
        return $this->_name;
    }
}
$o = new Bar();
echo $o->getName();

//Notice: Undefined proPErty: Bar::$_name in ...\test.PHP on line 11

但是当Foo :: $_ name属性定义为“public”时,它不会给出错误. PHP有自己的OO规则???

谢谢

编辑:现在一切都很清楚了.
实际上我在思考“继承”时创建了一个新类,并且继承了独立于其祖先的所有成员.我不知道“访问”规则和继承规则是一样的.

编辑
根据你的评论,这个片段应该给出错误.但它正在发挥作用.

class Foo
{
    private $bar = "baz";

    public function getBar()
    {
        return $this->bar;
    }
}

class Bar extends Foo
{}

$o = new Bar;
echo $o->getBar();      //baz
PHP Manual开始
class A
{
    public $prop1;     // accessible From everywhere
    protected $prop2;  // accessible in this and child class
    private $proP3;    // accessible only in this class
}

不,这与实施相同关键字的其他语言没有什么不同.

关于您的第二个编辑和代码段:

不,这不应该给出错误,因为getBar()是从Foo继承而Foo可以看到$bar.如果在Bar中定义或重载了getBar(),它将无法工作.见http://codepad.org/rlSWx7SQ

脚本宝典总结

以上是脚本宝典为你收集整理的Php继承全部内容,希望文章能够帮你解决Php继承所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。