private 型別的屬性不能直接訪問,需要通過特定介面進行訪問
__get(屬性名):外部訪問不存在或私有屬性時自動呼叫
__set(屬性,值):外部給類中不存在或不可見屬性賦值時自動呼叫
__isset(屬性名):外部檢測某個私有屬性是否存在時自動呼叫
__unset(屬性名):在類外部銷毀某個私有屬性時自動呼叫它
<?php
//物件的封裝:主要是指物件屬性的封裝,通過private訪問控制符
//private 屬性不能直接訪問,只能通過特定的介面進行訪問
class test_class
// public function getname()
// public function getage()
// public function getsalary()
// public function setname($name,$value )
// public function setage($age,$value )
// public function setsalary($salary,$value )
// php提供魔術方法,簡化寫法
// __get(屬性名):外部訪問不存在或私有屬性時自動呼叫
public function __get($name)
//__set(屬性,值):外部給類中不存在或不可見屬性賦值時自動呼叫
public function __set($name,$value)
return $this->$name = $value;
} //__isset(屬性名):外部檢測某個私有屬性是否存在時自動呼叫
public function __isset($name)
// __unset(屬性名):在類外部銷毀某個私有屬性時自動呼叫它
public function __unset($name)
}// $obj = new test_class('peter',25,4000);
// echo $obj->getname() . "-^-";
// echo $obj->getage() . "-^-";
// echo $obj->getsalary() . "-^-";
// $obj->setname('name','jack');
// echo $obj->getname() . "-^-";
// 對應的使用方法
$obj = new test_class('anan',18, 4500);
echo $obj->name;
echo $obj->age;
echo $obj->salary;
$obj->name='jack';
echo $obj->name;
$obj->age=455;
echo $obj->age;
echo isset($obj->name)?'存在':'不存在';
unset($obj->name);
echo $obj->name;//返回訊息,未定義該屬性
?>
PHP封裝時間類
開發中經常用到時間的一些操作,比如昨天,今天,前天,近七天,一周等等。class time if type 1 else 返回當前時間的月份 time 時間格式為時間 2018 8 21 function getmonth time type switch type return this mont...
php錯誤封裝類
1 建立myerrorhandler.php檔案 如下 class myerrorhandler public static function deal errno,errmsg,filename,line,vars 致命的錯誤 public function dealerror 產生錯誤的資訊 產...
PHP封裝時間類
開發中經常用到時間的一些操作,比如昨天,今天,前天,近七天,一周等等。class time if type 1 else 返回當前時間的月份 time 時間格式為時間 2018 8 21 function getmonth time type switch type return this mont...