PHP類基礎(6)之封裝類

2021-09-26 20:14:30 字數 1582 閱讀 5623

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...