public 表示全局,類內部外部子類都可以訪問;
復制代碼 代碼如下:
<?php
class Test{
public $name='Janking',
$sex='male',
$age=23;
function __construct(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
function func(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
}
$P=new Test();
echo '<br /><br />';
$P->age=100;
$P->name="Rainy";
$P->sex="female";
$P->func();
?>
Public
private表示私有的,只有本類內部可以使用;
復制代碼 代碼如下:
<?php
class Test{
private $name='Janking',
$sex='male',
$age=23;
function __construct(){
$this->funcOne();
}
function func(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
private function funcOne(){
echo $this->age.'<br />'.$this->name.'<br />'.$this->sex.'<br />';
}
}
$P=new Test();
echo '<br /><br />';
$P->func();
$P->age=100; // Cannot access private property Test::$age
$P->name="Rainy"; // Cannot access private property Test::$name
$P->sex="female"; // Cannot access private property Test::$female
$P->funcOne(); // Call to private method Test::funcOne() from context ''
?>
Private
protected表示受保護的,只有本類或子類或父類中可以訪問; 和封裝有關的魔術方法:
__set():是直接設置私有成員屬性值時,自動調用的方法
__get():是直接獲取私有成員屬性值時,自動調用的方法
__isset(); 是直接isset查看對象中私有屬性是否存時自動調用這個方法
__unset(); 是直接unset刪除對象中私有屬性時,自動調用的方法