PHP抽象類別的使用和定義 <?php abstract class A { public $name; function fun(){ echo $this->name; } abstract function cc($n,$nn=3); } class B extends A{ function cc($m,$mm=7){ echo "aaa"; } } $b = new B; ?>PHP物件導向 ,介面的定義使用<?php interface in_a{ const NA=7;const NB=9; function fun(); function fun2(); } interface in_b{ function fun3(); } class B{ function cc(){} } class A extends B implements in_a,in_b{ function fun(){}function fun2(){}function fun3(){} } $p=new A; ?> 兩個例子: 抽象類別的例子: <?php abstract class mysql{ public $host;//主機地址public $user;//使用者名稱public $passwd;public $dbname;public $charset; function __construct($h,$u,$p,$d,$c){ $this->host=$h; $this->user=$u; $this->passwd=$p; $this->dbname=$d; $this->charset=$c; $this->conn();} function conn(){@mysql_connect($this->host,$this->user,$this->passwd) or die ("mysql串連失敗");@mysql_select_db($this->dbname) or die("資料庫連接失敗");$this->q("set names '".$this->charset."'");} function q($n){ return mysql_query($n);} function id(){ return mysql_insert_id();} function f($n,$st=1){ switch($st){ case 1 : $rs=mysql_fetch_array($n); break; case 2 : $rs=mysql_fetch_row($n); break;}return $rs; }//========================/***說明:into插入資料庫的方法*參數:$tb表名,$val表示插入值,$st調試方式,1調試0不調試*返回:int */ abstract function into($tb,$val,$st=0); /***說明:sel_once查詢*參數:$tb表名,$wh條件預設1,$ar制定的欄位,$ty查詢類型,預設下標和鍵名,$st調試狀態,預設為0,1調試0不調試*返回:array [一維數組] */ abstract function sel_once($tb,$wh=1,$ar="*",$ty=1,$st=0); /***說明:sel_all查詢*參數:$tb表名,$wh條件預設1,$ar制定的欄位,$ty查詢類型,預設下標和鍵名,$st調試狀態,預設為0,1調試0不調試*返回:array [二維數組] */ abstract function sel_all($tb,$wh=1,$ar="*",$ty=1,$st=0); /***說明:update更新資料庫的方法*參數:$tb表名,$val更新內容$wh條件[1 limit 1],$st調試方式預設0,1調試0不調試*返回:int */ abstract function update($tb,$val,$wh="1 limit 1",$st=0); /***說明:del刪除資料庫的方法*參數:$tb表名,$wh條件[1 limit 1],$st調試方式預設0,1調試0不調試*返回:int */ abstract function del($tb,$wh="1 limit 1",$st=0); } ?> 介面的學習例子: <?php interface in_a{ /** 說明:登陸方法login 參數:$user使用者名稱,$passwd密碼 返回:bool [產生cookie] */ function login($user,$passwd); } interface in_b{ /** 說明:checkLogin檢查登陸 參數:$n使用者預設許可權 1 可以指定不同頁面使用者不同許可權 返回:bool */ function checkLogin($n=1); } interface in_c{ /** 說明:checkLoginTime檢查登陸是否逾時 參數:$n是逾時時間預設3600秒 返回:bool */ function checkLoginTime($n=3600); } //題目1要求:登陸頁面要求使用in_a in_b介面 //題目2要求:登陸後頁面要求使用 in_b in_c介面 ?>