php物件導向精要 3

2022-09-15 07:18:14 字數 1921 閱讀 7864

1,final關鍵字定義的方法,不能被重寫

由於final修飾了show方法,子類中重寫show方法會報錯

<?php

class

myclass

}class mytest extends

myclass

}?>

2,final定義的class不能被繼承

<?php

final

class

myclass

}class mytest extends

myclass

?>

3,__tostring方法

如果定義了__tostring方法,列印乙個物件時,將呼叫__tostring

class

person

function

__tostring()

}$p = new person( "ghostwu");

var_dump( $p

);echo

php_eol

;print

$p . php_eol;

4, 異常處理( try, catch, throw )

>異常處理類都應該繼承自系統自帶的exception

>異常丟擲時( throw 異常物件 ),會乙個個查詢catch後面的異常處理,如果匹配到,就執行,後面的catch就算能匹配,也不會執行

exception類摘要:

exception

1

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

ghostwu

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

1

class

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