亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP使用方法重載實現(xiàn)動態(tài)創(chuàng)建屬性的get和set方法

 更新時間:2014年11月17日 11:26:21   投稿:junjie  
這篇文章主要介紹了PHP使用方法重載實現(xiàn)動態(tài)創(chuàng)建屬性的get和set方法,使用本文方法可以在一個類中不用在寫大量的set方法或get方法,需要的朋友可以參考下

在PHP中,我們不能夠直接通過方法名相同,簽名不同的方法來實現(xiàn)方法重載,因為PHP是弱數(shù)據(jù)類型,不能很好的區(qū)分簽名。但是,可以在PHP的類中運用__call()方法來實現(xiàn)方法重載。當(dāng)調(diào)用一個類中并不存在的方法時,會自動調(diào)用__call()方法,其形式為__call($name,$arguments) 其中$name是方法的名稱,$arguments是一個數(shù)組類型的參數(shù)。

下面的例子是使用PHP的方法重載來動態(tài)創(chuàng)建get和set方法。(在面向?qū)ο缶幊讨?,一個類中的屬性會使用get和set來賦值,但是如果一個類中有太多的屬性,比如30個,那么如果不用方法重載的話,我們就需要寫30個set方法,30個get方法,自已一邊慢慢寫去吧。。。)

復(fù)制代碼 代碼如下:

<?php
class person
{
 private $name;
 private $age;
 private $address;
 private $school;
 private $phonenum;
 public function __call($method,$args)
 {
  $perfix=strtolower(substr($method,0,3));
  $property=strtolower(substr($method,3));
  if(empty($perfix)||empty($property))
  {
   return;
  }
  if($perfix=="get"&&isset($this->$property))
  {
   return $this->$property;
  }
  if($perfix=="set")
  {
   $this->$property=$args[0];
  }
 }
}
$p=new person();
$p->setname('lvcy');
$p->setage(23);
$p->setAddress(chengdu);
$p->setschool('uestc');
$p->setphonenum('123456');
echo $p->getname().'\\n';
echo $p->getage().'\\n';
echo $p->getaddress().'\\n';
echo $p->getschool().'\\n';
?>

通過__Call()方法很容易的解決了這個問題,而不是編寫每個屬性的get set方法。

相關(guān)文章

  • 淺談js數(shù)組splice刪除某個元素爬坑

    淺談js數(shù)組splice刪除某個元素爬坑

    這篇文章主要介紹了淺談js數(shù)組splice刪除某個元素爬坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • JS+CSS實現(xiàn)的豎向簡潔折疊菜單效果代碼

    JS+CSS實現(xiàn)的豎向簡潔折疊菜單效果代碼

    這篇文章主要介紹了JS+CSS實現(xiàn)的豎向簡潔折疊菜單效果代碼,涉及JavaScript鏈式操作與元素遍歷等相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 微信小程序中轉(zhuǎn)義字符的處理方法

    微信小程序中轉(zhuǎn)義字符的處理方法

    這篇文章主要介紹了微信小程序中轉(zhuǎn)義字符的處理方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS實現(xiàn)針對給定時間的倒計時功能示例

    JS實現(xiàn)針對給定時間的倒計時功能示例

    這篇文章主要介紹了JS實現(xiàn)針對給定時間的倒計時功能,結(jié)合具體實例形式分析了javascript日期時間的正則判定與動態(tài)運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • 微信小程序?qū)崿F(xiàn)二維碼生成器

    微信小程序?qū)崿F(xiàn)二維碼生成器

    這篇文章主要為大家詳細介紹了如何通過微信小程序開發(fā)一個簡單的二維碼生成器,文中的示例代碼講解詳細,感興趣的小伙伴可以和小編一起學(xué)習(xí)一下
    2023-01-01
  • javascript 必知必會之closure

    javascript 必知必會之closure

    本系列博文主要談一些在 javascript 使用中經(jīng)常會混淆的高級應(yīng)用,包括: prototype, closure, scope, this關(guān)鍵字. 對于一個需要提高自己javascript水平的程序員,這些都是必須要掌握的.
    2009-09-09
  • JS實現(xiàn)html頁面點擊下載文件的兩種方式

    JS實現(xiàn)html頁面點擊下載文件的兩種方式

    這篇文章主要介紹了JS實現(xiàn)html頁面點擊下載文件的兩種方式,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • JS實現(xiàn)可展開折疊層的鼠標拖曳效果

    JS實現(xiàn)可展開折疊層的鼠標拖曳效果

    這篇文章主要介紹了JS實現(xiàn)可展開折疊層的鼠標拖曳效果,具有展開折疊層及實時顯示鼠標坐標位置的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Javascript 判斷 object 的特定類轉(zhuǎn)載

    Javascript 判斷 object 的特定類轉(zhuǎn)載

    Javascript 判斷 object 的特定類轉(zhuǎn)載...
    2007-02-02
  • 采用call方式實現(xiàn)js繼承

    采用call方式實現(xiàn)js繼承

    這篇文章主要介紹了如何采用call方式實現(xiàn)js繼承,需要的朋友可以參考下
    2014-05-05

最新評論