1> if( "false" ) 等效於 if( true), 因為非空字串是true
2> 檢查資料型別:
is_array();
is_object();
is_string();
is_null();
is_integer();
3> php5 引入類的型別提示(type hint),用來約束乙個方法的引數型別(不是基本資料型別,而是類):將類名放在需要約束的方法引數之前.
例如: function write( shopproduct $shopproduct){}
4> instanceof 操作符: 如果左邊運算元的物件是右邊運算元所示的型別,結果為true
例如: if( $shopproduct instanceof bookproduct
) {}
5> 繼承 class son extends parent{}
要呼叫父類的方法, 比如建構函式,用 parent::__construct();
6> 靜態方法和屬性
class staticexample }
外部訪問使用::
例如: print staticexample::$a;
內部訪問使用self::
例如: self::$a;
7> 抽象類, 抽象方法
abstract class *** }
抽象類的子類要重新宣告方法並實現之. 新實現的方法的訪問控制不能比抽象方法的訪問控制更嚴格.
8>介面 inte***ce
只定義功能,不包含實現. 介面中可以包含屬性和方法宣告,但方法體為空;
例如: inte***ce a
任何實現介面的類都要實現介面中定義的所有方法,否則就必須是抽象類.
類在宣告中使用implements來實現某個介面.
class shop implements a }
9> 異常 exception
php5引入異常類
10>*** interceptor
__get($property); 訪問未定義的屬性時被呼叫
__set($property,$value); 給未定義的屬性賦值時被呼叫
__isset($property); 對未定義的屬性使用isset()時被呼叫;
__unset($property);對未定義的屬性呼叫unset()時被呼叫;
__call($method, $arg_array); 呼叫未定義的方法時候被呼叫
例: __get()的實現
function __get($property)";
if(method_exists($this,$method)) }
function getname()
function __isset($property)";
return(method_exists($this, $method)); }
function __set($property, $value)";
if( method_exists($this,$method)) }
11> 析構方法 __destruct()
12> __clone(); 與clone關鍵字的區別
class copyme();
$first= new copyme();
$second=$first;
// php4 : $first和$second是兩個完全不同的物件;
// php5: $first和$second指向同乙個物件
php5中, 物件的賦值和傳遞都是引用.
如果要拷貝,就要用: $second= clone $first; //現在$first和$second是兩個完全不同的物件,(by_value copy)
如果要想控制複製, 要通過實現乙個特殊方法__clone()
13> 自動載入: __autoload()
php5引入__autoload()***方法來自動包含類檔案.當php遇到試圖例項化乙個未知類的操作時,會嘗試呼叫__autoload()方法,並將類名當作字串引數傳遞給它.
例如乙個很簡單的自動定位和包含策略:
function __autoload( $classname)
********************
14>使用字串動態引用類
$classname="task";
require_once("tasks/.php);
$myobj= new $classname();
$method="gettitle";
$myobj->$method(); //動態方法
15>類函式和物件函式
class_exist(); //檢查類是否存在
get_declared_classes(); //獲得當前指令碼程序中定義的所有類(array形式返回)
get_class_methods();//類中所有的public方法列表(array)
method_exist($objname,$method); //物件或類的方法是否存在
is_callable();//物件或類的方法不僅存在,且能訪問
get_class_vars(); // 屬性
get_parent_class(類或物件名稱); //父類
is_subclass_of(); //是否子類,不管介面,介面用 instanceof操作符
16>反射api
由一系列可以分析屬性、方法、類和引數的內建類構成,可以動態獲取資訊,動態呼叫方法.
php物件導向之一
面向過程 以事件為中心,分幾個步驟去完成。不可擴充套件,html與php不分離 物件導向 自己作為指揮者,指揮別人去做。具有可擴充套件性,html和php 分離 物件 自然間形形色色存在的可以看得見的東西 其實這個也不會很準確 在 中表現為 由 執行出來的效果 軟體工程的三個目標 1.重用性 2.靈...
物件導向基礎之一
記錄一些基礎知識,以備後查。1.類與例項 物件是乙個自包含的實體,用一組可識別的特性和行為來標識。object oriented programming。類就是具有相同的屬性和功能的物件的抽象的集合。class是表示定義類的關鍵字。第一,類名稱首字母要大寫。第二,對外公開的方法需要用public修飾...
PHP物件導向 特徵之一 繼承
header content type text html charset utf 8 classzixingche public functionshache public functionjieshao 繼承 擴充套件父類的內容,注意只能繼承public和protected修飾的內容,而priv...