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

首頁(yè) > 語(yǔ)言 > PHP > 正文

PHP面向?qū)ο缶幊倘腴T教程

2024-09-04 11:43:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  1. /*  類的聲明 
  2.  *    1.你要開(kāi)發(fā)的是什么,確定寫(xiě)什么類 
  3.  *    2.類中的成員一定要屬于這個(gè)類    
  4.  *       [修飾類的關(guān)鍵字] class 類名{ 
  5.  *         成員屬性: 
  6.  *         成員方法: 
  7.  *        } 
  8.  *    3.在類中聲明成員屬性時(shí),前面必須有修飾詞,當(dāng)不確定使用哪個(gè)詞時(shí),使用var或public 
  9.  *    一個(gè)文件只保存一個(gè)類,文件名中包含類名,文件:類名.class.php 
  10.  *      類名的寫(xiě)法: 
  11.  *       變量:aaaBbbCcc 
  12.  *       函數(shù):aaaBbbCcc 
  13.  *       常量:AAABBBCCC 
  14.  *       類名:AaaBbbCcc 
  15.  *     4.類中的成員屬性,如果創(chuàng)建多個(gè)對(duì)象時(shí),每個(gè)對(duì)象有不同的屬性值時(shí),不要直接給初值,在創(chuàng)建好對(duì)象之后再給值 
  16.  *   
  17.  *   
  18.  *  通過(guò)類來(lái)實(shí)例化對(duì)象 
  19.  *   1.使用的是new新建一個(gè)對(duì)象,加上類名,就是創(chuàng)建哪個(gè)類的對(duì)象 
  20.  *     $對(duì)象引用=new 類名; 
  21.  *   2.只要有一個(gè)new 關(guān)鍵字就是創(chuàng)建一個(gè)對(duì)象,創(chuàng)建一個(gè)對(duì)象就是在內(nèi)存中分配了一個(gè)空間 
  22.  * 
  23.  *   只有對(duì)象才在內(nèi)存有存儲(chǔ)空間 
  24.  * 
  25.  *  對(duì)象的作用 
  26.  * 
  27.  *  對(duì)象在內(nèi)存中的分配 
  28.  * 
  29.  *  對(duì)象的使用 
  30.  *   對(duì)象中的成員必須通過(guò)對(duì)象的引用來(lái)訪問(wèn) 
  31.  *   對(duì)象->成員 
  32.  * 
  33.  *    對(duì)象->成員屬性 
  34.  *    對(duì)象->成員方法 
  35.  * 
  36.  * 
  37.  * 
  38.  */ 
  39.  
  40. -<?php 
  41.  
  42. class Something {  
  43. // 在OOP類中,通常第一個(gè)字符為大寫(xiě)  
  44. var $x;  
  45. function setX($v) {  
  46. // 方法開(kāi)始為小寫(xiě)單詞,然后使用大寫(xiě)字母來(lái)分隔單詞,例如getValueOfArea()  
  47. $this->x=$v;  
  48. }  
  49. function getX() {  
  50. return $this->x;  
  51. }  
  52. }  
  53. ?>- 

當(dāng)然你可以按自已的喜好進(jìn)行定義,但最好保持一種標(biāo)準(zhǔn),這樣會(huì)更有效,數(shù)據(jù)成員在類中使用"var"聲明來(lái)定義,在給數(shù)據(jù)成員賦值之前,它們是沒(méi)有類型的,一個(gè)數(shù)據(jù)成員可 以是一個(gè)整數(shù),一個(gè)數(shù)組,一個(gè)相關(guān)數(shù)組(associative array)或者是一個(gè)對(duì)象.

方法在類中被定義成函數(shù)形式,在方法中訪問(wèn)類成員變量時(shí),你應(yīng)該使用$this->name,否則對(duì)一個(gè)方法來(lái)說(shuō),它只能是局部變量.

使用new操作符來(lái)創(chuàng)建一個(gè)對(duì)象:$obj=new Something; 

然后你可以使用成員函數(shù)通過(guò):

  1. $obj->setX(5);  
  2. $see=$obj->getX(); 

在這個(gè)例子中,setX成員函數(shù)將5賦值給對(duì)象的成員變量x(不是類的),然后getX返回它的值5.

你可以象:$obj->x=6那樣通過(guò)類引用方式來(lái)存取數(shù)據(jù)成員,這不是一個(gè)很好的OOP習(xí)慣,我強(qiáng)烈建議通過(guò)方法來(lái)存取成員變量,如果你把成員變量看成是不可處理的,并且只通過(guò)對(duì)象句柄來(lái)使用方法,你將是一個(gè)好的OOP程序員,不幸的是,PHP不支持聲明私有成員變量,所以不良代碼在PHP中也是允許的.

繼承在PHP中很容易實(shí)現(xiàn),只要使用extend關(guān)鍵字,代碼如下:

  1. <?php 
  2. class Another extends Something {  
  3. var $y;  
  4. function setY($v) {  
  5. $this->y=$v;  
  6. }  
  7. function getY() {  
  8. return $this->y;  
  9. }  
  10.  
  11. ?> 
  12.  
  13. //類的聲明(電話類) 
  14. class Phone{ 
  15.  //聲明屬性 
  16.  var $pinPai
  17.  var $color
  18.  var $batteryCapacity
  19.  var $screenSize
  20.  
  21.  //成員方法 
  22.  function call(){ 
  23.  
  24.  } 
  25.  
  26.  function message(){ 
  27.  
  28.  } 
  29.  
  30.  function playMusic(){ 
  31.  
  32.  } 
  33.  
  34.  function photo(){ 
  35.  
  36.  } 
  37.  
  38. //類的實(shí)例化 
  39.  
  40. <?php 
  41.  
  42. class Something {  
  43. var $x
  44.  
  45. function Something($y) {  
  46. $this->x=$y;  
  47.  
  48. function setX($v) {  
  49. $this->x=$v;  
  50.  
  51. function getX() {  
  52. return $this->x;  
  53. }  
  54. ?> 

所以你可以創(chuàng)建一個(gè)對(duì)象,通過(guò):$obj=new Something(6); 構(gòu)造函數(shù)會(huì)自動(dòng)地把6賦值給數(shù)據(jù)變量x,構(gòu)造函數(shù)和方法都是普通的PHP函數(shù),所以你可以使用缺省參數(shù).

function Something($x="3",$y="5") 

接著:

  1. $obj=new Something(); // x=3 and y=5  
  2.   $obj=new Something(8); // x=8 and y=5  
  3.   $obj=new Something(8,9); // x=8 and y=9  

缺省參數(shù)使用C++的方式,所以你不能忽略Y的值,而給X一個(gè)缺省參數(shù),參數(shù)是從左到右賦值的,如果傳入的參數(shù)少于要求的參數(shù)時(shí),其作的將使用缺省參數(shù).

當(dāng)一個(gè)派生類的對(duì)象被創(chuàng)建時(shí),只有它的構(gòu)造函數(shù)被調(diào)用,父類的構(gòu)造函數(shù)沒(méi)被調(diào)用,如果你想調(diào)用基類的構(gòu)造函數(shù),你必須要在派生類的構(gòu)造函數(shù)中顯示調(diào)用,可以這樣做是因?yàn)樵谂缮愔兴懈割惖姆椒ǘ际强捎玫?

  1. <?php 
  2. function Another() {  
  3. $this->y=5;  
  4. $this->Something();  
  5. //顯示調(diào)用基類構(gòu)造函數(shù)  
  6.  
  7. ?> 
  8.  
  9. class Person{ 
  10.  
  11.  var $name
  12.  var $age
  13.  var $sex
  14.  
  15.  function say(){ 
  16.  
  17.  } 
  18.  
  19.  function eat(){ 
  20.  
  21.  } 
  22.  
  23.  function run(){ 
  24.  
  25.  } 
  26. //實(shí)例化 
  27. $p1=new Person; 
  28. $p2=new Person; 
  29. $p3=new Person; 
  30.  
  31. <?php 
  32.  
  33. $obj=new Classfoo();  
  34. $str=serialize($obj); 
  35.  
  36. //保存$str到磁盤上  
  37. //幾個(gè)月以后 
  38. //從磁盤中裝入str 
  39. $obj2=unserialize($str)
  40. ?> 

你恢復(fù)了成員數(shù)據(jù),但是不包括方法,根據(jù)文檔所說(shuō),這導(dǎo)致了只能通過(guò)類似于使用$obj2->x來(lái)存取成員變量,你沒(méi)有別的方法的唯一辦法,所以不要在家里試它.

  1. //訪問(wèn)對(duì)象的成員 
  2. $p1->name="zhangsan"
  3. echo $p1->name; 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 资源县| 郴州市| 马边| 凌源市| 安阳市| 扎鲁特旗| 鄂托克前旗| 濮阳市| 南和县| 巍山| 西峡县| 全椒县| 宽甸| 霍城县| 阜平县| 德令哈市| 上犹县| 万载县| 芜湖市| 托克托县| 崇明县| 阳原县| 舞阳县| 左权县| 长沙市| 乌兰浩特市| 余江县| 金秀| 鄄城县| 台中市| 长寿区| 康保县| 额尔古纳市| 黄石市| 隆回县| 海南省| 南漳县| 西乌珠穆沁旗| 嘉兴市| 屏东县| 广南县|