一,對象描述 __tostring 相似音樂CD的標籤同樣,想知道這個類是作什麼用的時候,能夠直接實例化後打印對象句柄。php
- <?
- class myclass {
- function __tostring(){
- return "這是一個測試的類";
- }
- }
- $myclass = new myclass();
- echo $myclass;
- ?>
輸出結果 這是一個測試的類ide
二,當對象中有錯誤時,可以獲得準確錯誤信息的 __call($n,$v)測試
至關於錯誤提示,當有錯誤時,可以準確的提供錯誤信息,$n爲錯誤的方法名,$v爲錯誤的值this
- <?
- class myclass {
- function __tostring(){
- return "這是一個測試的類";
- }
- function __call($n,$v){
- echo "錯誤的方法爲".$n;
- echo "錯誤的值爲".print_r($v);
- }
- }
- $myclass = new myclass();
- $myclass->demo('第一',0);
- ?>
輸出結果爲 錯誤的方法爲demoArray ( [0] => 第一 [1] => 0 ) 錯誤的值爲1spa
三,克隆對象,就是克隆出兩個內存克隆對象時使用clone 初始化克隆對象時用方法名爲__clone對象
- <?
- class myclass {
- public $name="個人類";
- function __destruct(){
- echo "<br>清除了一個對象";}
- function __clone(){
- $this->name = "你的類";}
- }
- $myclass = new myclass();
- $p = clone $myclass;
- echo
- $myclass->name."<br>".
- $p->name;
- ?>
輸出結果爲 內存
個人類
你的類
清除了一個對象
清除了一個對象string
四,自動引用,經過聲明一個方法 __autoload($name) 變量$name 來傳值,實現自動引用it
思路,首先創建兩個類的PHP文件io
demo.php
- <?
- class demo {
- function fun1(){
- echo "引用的demo";
- }
- }
- ?>
test1.php
- <?
- class test1 {
- function fun2(){
- echo "引用的test1";
- }
- }
- ?>
而後創建autoload.php 使用聲明 __autoload方法自動引用 demo.php test1.php
- <?
- function __autoload($name){
- include($name.".php");
- }
- $p = new demo();
- $v = new test1();
- echo $p->fun1()."<br>";
- echo $v->fun2();
- ?>
輸出結果爲
引用的demo 引用的test1