国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php數組 類和對象 接口使用方法

2024-05-04 21:48:53
字體:
來源:轉載
供稿:網友

1. 數組

php的數組其實是一個關聯數組,或者說是哈希表,php不需要預先聲明數組的大小,可以用直接賦值的方式來創建數組,例如:

  1. //最傳統,用數字做鍵,賦值 
  2. $state[0]="beijing";  
  3. $state[1]="hebei";  
  4. $state[2]="tianjin"
  5. //如果鍵是遞增的數字,則可以省略 
  6. $city[]="shanghai";  
  7. $city[]="tianjin";  
  8. $city[]="guangzhou"
  9. //用字符串做鍵 
  10. $capital["china"]="beijing";  
  11. $capital["japan"]="tokyo"

用array()來創建數組會更加方便一點,可以將數組元素作為array的參數傳遞給他,也可以用=>運算符創建關聯數組,例如:

  1. $p=array(1,3,5,7); 
  2. $capital=array(“china”=>”beijing”, “japan=>”tokyo”); 

array其實是一種語法結構,而不是函數,和array類似,還有一個list(),它可以用來提取數組中的值,并給多個變量賦值,例如:

  1. list($s,$t)=$city;  
  2. echo $s,' ',$t

輸出結果:shanghai tianjin

注意,list方法只能用于由數字索引的數組.

php內建了一些常用的數組處理函數,具體可以參考手冊,常用的函數舉例如下,count或者sizeof可以得到數組的長度,array_merge 可以合并兩個,或者多個數組,array_push(pop)可以像堆棧一樣使用數組.

  1. <?php 
  2.         $state[0]="beijing"
  3.         $state[1]="hebei"
  4.         $state[2]="tianjin"
  5.         $city[]="shanghai"
  6.         $city[]="tianjin"
  7.         $city[]="guangzhou"
  8.         $capital["china"]="beijing"
  9.         $capital["japan"]="tokyo"
  10.          
  11.         echo count($city),'<br/>'
  12.          array_push($capital,"paris"); 
  13.         $newarray=array_merge($city,$capital); 
  14.         foreach($newarray as $elem
  15.         //開源代碼Vevb.com 
  16.             echo $elem.’<br/>’; 
  17.     
  18. ?> 
  19. //輸出結果為: 
  20. //3  
  21. //shanghai  
  22. //tianjin  
  23. //guangzhou  
  24. //beijing  
  25. //tokyo  
  26. //paris 

2. 類和對象

php5開始對面向對象編程有了很好的支持,php中的類的概念和其他面向對象的語言比如c#是十分相似的,它也是一個值和方法的聚合體,使用class關鍵字定義,例如:

  1. <?php 
  2.       class authuser { 
  3.           protected $username
  4.           protected $password
  5.           public function   __construct($username,$password) { 
  6.               $this->username=$username
  7.               $this->password=$password
  8.           } 
  9.           public function getusername() { 
  10.               return $username
  11.           } 
  12.           public function changepassword($old,$new) {                 
  13.               if($this->password==$old) { 
  14.                   $this->password=$new
  15.                   return true; 
  16.               }else 
  17.                   return false; 
  18.           } 
  19.           public function login($password) { 
  20.               return $this->password==$password
  21.           } 
  22.           public static function createuser($username,$password) { 
  23.               $user=new authuser($username,$password); 
  24.               return $user
  25.           } 
  26.       } 
  27.       $user=authuser::createuser("admin","123"); 
  28.       echo $user->getusername(); 
  29.       if($user->changepassword('abc''new')) 
  30.           echo 'changepassword success'
  31.       else 
  32.           echo 'change password fail'
  33.       $user->changepassword("123""321"); 
  34.       if($user->login("321")) 
  35.           echo "login"
  36.       else 
  37.           echo "login fail"
  38.       ?> 

上面是一個雖然沒有什么用但是語法結構上較為完整的類,首先使用class關鍵字定義類的名字,內部可以定義字段和方法,字段和方法的修飾詞可以是private,protected,public 和 final,僅方法有,其含義和其它語言一致,不再贅述,不同的地方在于,php不支持函數的重載,另外,php5的構造函數的定義是__construct,注意前綴是兩個下劃線。php4的構造函數的定義和其它語言一致,是和類名一樣的函數,php5也兼容這種寫法。php5還支持析構函數,名字是__destruct,在函數內部,可以使用$this變量來獲得當前對象的引用,php也支持靜態函數,同樣是使用static關鍵字修飾,示例中最后一個函數就靜態函數,靜態函數不能通過類的實例引用.

類的定義下面是使用類的代碼示例,php也是通過new關鍵字來實例化一個類,通過->運算符來引用對象的方法,注意其靜態類的引用方法是::,這是和c++一致的.

下面再簡單介紹下類的繼承,php中使用extends關鍵字來實現類的繼承,這是和java一致的,實例代碼如下:

  1. <?php 
  2.         class baseclass { 
  3.             function __construct() { 
  4.                 print "in baseclass constructorn"
  5.             } 
  6.         } 
  7.         class subclass extends baseclass { 
  8.             function __construct() { 
  9.                 parent::__construct(); 
  10.                 print "in subclass constructorn"
  11.             } 
  12.         } 
  13.        
  14.         $obj = new baseclass(); 
  15.         $obj = new subclass(); 
  16. ?> 
  17. //輸出的結果是: in baseclass constructor in baseclass constructor in subclass constructor 

要注意,php的子類的構造函數不會自動調用父類的構造函數,必須在程序中顯式地調用,使用parent關鍵字可以得到父類的引用,另外,由于php本身是弱類型的,所以“多態“的概念也不存在了,實際上,它永遠都是多態的.

接口:接口定義了一組方法,但不實現他們,其語法為:

  1. interface  iinterfacename 
  2.    //常量、函數定義  

類利用implements關鍵字來表面實現某個接口,這和java是一致的.

  1. <?php 
  2.    interface iaddable{ 
  3.       function add($something); 
  4.    } 
  5.    class addclass implements iaddable 
  6.    { 
  7.        private $data
  8.        function addclass($num){ 
  9.            $data=$num
  10.        } 
  11.        public function add($something
  12.        { 
  13.            $data+=$something
  14.            return $data
  15.        } 
  16.    } 
  17.    $a=new addclass (5); 
  18.    echo $a instanceof iaddable; 
  19.    echo $a->add(10); 
  20. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万荣县| 奉节县| 镇坪县| 车险| 鄄城县| 本溪市| 黄骅市| 西平县| 甘肃省| 临湘市| 隆子县| 彭山县| 景宁| 武汉市| 巴东县| 昭平县| 张家口市| 顺昌县| 怀柔区| 易门县| 济源市| 石城县| 威宁| 方城县| 安平县| 民和| 合阳县| 高州市| 新竹市| 安阳县| 天台县| 奉节县| 遵义县| 祁连县| 无锡市| 抚松县| 镇宁| 密山市| 三都| 简阳市| 平潭县|