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

首頁 > 語言 > PHP > 正文

PHP中常用的魔術(shù)

2024-09-04 11:43:51
字體:
供稿:網(wǎng)友

我們?cè)赑HP中經(jīng)常用到魔術(shù)方法,像構(gòu)造方法,析構(gòu)方法等等魔術(shù)變量,下面總結(jié)一下一些常用的魔術(shù)變量:

__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic;

1,__constuct()構(gòu)造函數(shù)

通常實(shí)例化完一個(gè)對(duì)象之后,都要對(duì)該對(duì)象的屬性進(jìn)行初始化!在實(shí)例化一個(gè)對(duì)象的時(shí)候,PHP系統(tǒng)會(huì)自動(dòng)的調(diào)用一個(gè)名字叫作__construct()的方法,我們把這個(gè)方法叫作“構(gòu)造方法”!

其中,構(gòu)造方法可以沒有參數(shù)!代碼如下: 

  1.  classStu { 
  2.   public$stu_name
  3.   public$stu_age
  4.   
  5.  //構(gòu)造方法,實(shí)例化時(shí)自動(dòng)調(diào)用 
  6.   publicfunction__construct($name,$age){ 
  7.   
  8.    $this->stu_name =$name
  9.    $this->stu_age =$age
  10.   }  
  11.   
  12.  } 
  13.   
  14.  //實(shí)例化stu對(duì)象 
  15.  $stu=newStu('孫悟空','500'); 

2.__destruct()析構(gòu)方法

與構(gòu)造方法是一對(duì),構(gòu)造方法是在一個(gè)對(duì)象“出生”的時(shí)候由系統(tǒng)自動(dòng)調(diào)用的,而析構(gòu)方法是在一個(gè)對(duì)象“消失”的時(shí)候由系統(tǒng)自動(dòng)調(diào)用的!

析構(gòu)方法的名字叫__destruct();注意里面不能有任何的參數(shù)!代碼如下:

  1. <?php 
  2. //析構(gòu)方法 
  3. publicfunction__destruct(){ 
  4.  
  5. ?> 

注意:析構(gòu)方法是在對(duì)象銷毀之前調(diào)用的!  

作用:

析構(gòu)方法的作用一般是用來釋放該對(duì)象所占用的額外的資源,而不是銷毀該對(duì)象本身!

3,__clone()克隆

觸發(fā)時(shí)機(jī):是在克隆一個(gè)對(duì)象的時(shí)候,對(duì)新對(duì)象進(jìn)行初始化的工作,代碼如下,克隆方法在克隆對(duì)象的時(shí)候?qū)π聦?duì)象的初始化工作:

  1. publicfunction__clone(){ 
  2.   $this->is_clone=true; 
  3.  } 

思考:

克隆出來的對(duì)象還是不是Student類中的一個(gè)實(shí)例呢?我們可以利用instanceof運(yùn)算符來進(jìn)行判斷!

instanceof就是用來判斷某個(gè)對(duì)象是否是某個(gè)類的一個(gè)實(shí)例!

需要兩個(gè)操作數(shù),前面是一個(gè)對(duì)象變量,后面是一個(gè)類名!返回一個(gè)布爾值!

var_dump($stu instanceof Stu); //返回bool(true)

4.__autoload()自動(dòng)加載類

當(dāng)調(diào)用不存在的類的時(shí)候自動(dòng)調(diào)用!代碼如下:

  1. <?php 
  2. /** 
  3. * 自動(dòng)加載類 
  4. * 需要什么類__autoload會(huì)自動(dòng)調(diào)用需要的文件 
  5. * 
  6. */  
  7. publicfunction__autoload($class_name
  8.  require_once"../Model/{$class_name}.class.php"
  9.  ?> 

5.__tostring()

當(dāng)將對(duì)象當(dāng)成字符串使用的時(shí)候自動(dòng)調(diào)用

6.__invoke()

當(dāng)將對(duì)象當(dāng)成函數(shù)使用的時(shí)候自動(dòng)調(diào)用

7,__set()

當(dāng)對(duì)無法訪問的屬性賦值時(shí)自動(dòng)調(diào)用(比如:類外調(diào)用私有屬性)

8.__get()

當(dāng)對(duì)獲取無法訪問的屬性值的時(shí)候自動(dòng)調(diào)用

9.__unset()

當(dāng)銷毀無法訪問的屬性的時(shí)候自動(dòng)調(diào)用

10.__isset()

當(dāng)判斷無法訪問的屬性是否存在的時(shí)候自動(dòng)調(diào)用

11.__call()

當(dāng)調(diào)用無法訪問的普通方法時(shí)自動(dòng)觸發(fā),代碼如下:

  1. classStu{ 
  2.  
  3.  publicfunction__call(){ 
  4.     echo"error"
  5.  } 
  6. $stu=newStu(); 
  7. //此時(shí)Stu類里沒有show()方法,會(huì)觸發(fā)__call()函數(shù) 
  8. $stu->show(); 

12.__callststic()

當(dāng)無法通過靜態(tài)方法訪問時(shí)自動(dòng)觸發(fā),代碼如下:

  1. classStu{  
  2.  publicstaticfunction__callstatic(){ 
  3.   echo"error"
  4.  } 
  5. $stu=newStu(); 
  6. //此時(shí)Stu類里沒有show()方法,會(huì)觸發(fā)__call()函數(shù) 
  7. $stu::show(); 

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 福安市| 柘荣县| 宁明县| 巫溪县| 额尔古纳市| 海口市| 东莞市| 蛟河市| 庆云县| 长海县| 蕉岭县| 砚山县| 苍南县| 若羌县| 双桥区| 福鼎市| 清远市| 友谊县| 惠安县| 德化县| 台安县| 山阳县| 扎囊县| 南昌市| 林甸县| 观塘区| 资中县| 阿拉善左旗| 运城市| 郁南县| 师宗县| 黄陵县| 红桥区| 历史| 周口市| 增城市| 姜堰市| 镇远县| 珠海市| 聂荣县| 睢宁县|