1,final關鍵字定義的方法,不能被重寫
由於final修飾了show方法,子類中重寫show方法會報錯
<?phpclass
myclass
}class mytest extends
myclass
}?>
2,final定義的class不能被繼承
<?phpfinal
class
myclass
}class mytest extends
myclass
?>
3,__tostring方法
如果定義了__tostring方法,列印乙個物件時,將呼叫__tostring
classperson
function
__tostring()
}$p = new person( "ghostwu");
var_dump( $p
);echo
php_eol
$p . php_eol;
4, 異常處理( try, catch, throw )
>異常處理類都應該繼承自系統自帶的exception
>異常丟擲時( throw 異常物件 ),會乙個個查詢catch後面的異常處理,如果匹配到,就執行,後面的catch就算能匹配,也不會執行
exception類摘要:
exception
1class nullhandleexception extends
exception5}
67function printobj( $obj
)
11print
$obj . php_eol;12
}1314class
person
19function
__tostring() 22}
2324
trycatch( nullhandleexception $exception
)catch( exception
$exception)36
37echo "try...catch處理完畢" . php_eol;
輸出結果:
ghostwu@ubuntu:~/php_study/php5/03$ php -f exception_usage.phpghostwu
printobj接收到乙個null物件
in file:/home/ghostwu/php_study/php5/03/exception_usage.php
in line:10
try...catch處理完畢
沒有輸出"zhangsan", 因為printobj( null );丟擲了異常,因此"zhangsan"被忽略
5,__autoload自動載入檔案
在專案開發中,經常需要在乙個檔案中包含多個通用的庫檔案,這個時候會產生一大堆的require或者include,而使用__autoload函式可以簡化函式的載入過程
1,myclass.php
1class
myclass
5 }
2,common.inc
function __autoload( $classname) .php");
}
3,main.php
require_once "common.inc";$obj = new
myclass();
$obj->printhelloworld();
PHP物件導向精要
1 使用extends實現繼承以及過載 魔術方法的含義 class b extends a 宣告的時候b裡可以沒有a裡的方法 呼叫的時候 b new b b a裡的方法 b a裡的屬性 1 b b裡的方法 b b裡的方法 如果 a new a 可以 a a裡的方法 a a裡的屬性 1 不可以 a b...
PHP物件導向精要
1 使用extends實現繼承以及過載 魔術方法的含義 class b extends a 宣告的時候b裡可以沒有a裡的方法 呼叫的時候 b new b b a裡的方法 b a裡的屬性 1 b b裡的方法 b b裡的方法 如果 a new a 可以 a a裡的方法 a a裡的屬性 1 不可以 a b...
php物件導向精要 1
1 靜態屬性與方法 每乙個類的例項擁有自己的屬性和方法,每乙個類也可以包含靜態屬性,靜態屬性不屬於類的任何例項,可以把靜態屬性理解成儲存在類中的全域性變數,可以在任何地方通過類名引用靜態屬性。1 2class myclass 7 89 obj new myclass 10echo obj getva...