private、protected、public

 
private     
protected       
public
本类内     
Y Y Y
子类内     
N Y Y
外部       
N N N

 

 

 

 

 

 

 

<?php
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';

function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
echo $obj->protected; // 这行会产生一个致命错误
echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private

class MyClass2 extends MyClass
{
// 可以对 public 和 protected 进行重定义,但 private 而不能
// protected $protected = 'Protected2';

function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}


$obj2 = new MyClass2();
echo $obj2->public; // 这行能被正常执行
echo $obj2->private; // 未定义 private
echo $obj2->protected; // 这行会产生一个致命错误
$obj2->printHello(); // 输出 Public、Protected 和 Undefined

?>

 

posted on 2017-07-23 11:17  会学习的猪  阅读(390)  评论(0编辑  收藏  举报

导航