+ -
当前位置:首页 → 问答吧 → P227关于protected的一个疑问

P227关于protected的一个疑问

时间:2007-12-15

来源:互联网

P227第二行:
引用:
protected修饰的成员变量只允许内部和子类的对象访问
我测了一下:
复制内容到剪贴板
代码:

<?php
class A {
protected $a="ok";
}
class B extends A {
}
$a = new B();
echo $a->a;
复制内容到剪贴板
代码:

Fatal error: Cannot access protected property B::$a in ...
觉得protected修饰的成员变量应该是在父类和子类内部可见的啊,子类的对象应该访问不了的吧?
我刚开始OOP,还不是很理解,麻烦杜老师给看一下,如果我理解错了请不要见怪,谢谢啦!

作者: 麦兜加油!   发布时间: 2007-12-15

222页$this关键字的用法写到:我们使用$this->varname这种方式来访问$varname成员变量,可以看到,这部分有关的内容的例子,每个都有用函数来$this->什么东西
静态成员变量也有用self::什么的来取值,不知道是不是这样

作者: lackll   发布时间: 2007-12-15

都是写成这样的:
<?
class A {
protected $a="ok";
function SS(){
return $this->a;
}
}
class B extends A{
}
$a = new B();
echo $a->SS();
?>

作者: lackll   发布时间: 2007-12-15

谢谢楼上回复!
可以定义一个public的成员方法来访问protected的成员变量,这符合下面前半句所说
引用:
protected修饰的成员变量只允许内部和子类的对象访问
我只是想知道后半句(红色)是不是写错了

作者: 麦兜加油!   发布时间: 2007-12-17

protected的变量和方法只是在类的内部可见

作者: 麦兜加油!   发布时间: 2007-12-17

热门下载

更多