最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

復(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';
?>

通過(guò)__Call()方法很容易的解決了這個(gè)問(wèn)題,而不是編寫(xiě)每個(gè)屬性的get set方法。

相關(guān)文章

  • 微信JS SDK接入的幾點(diǎn)注意事項(xiàng)(必看篇)

    微信JS SDK接入的幾點(diǎn)注意事項(xiàng)(必看篇)

    下面小編就為大家?guī)?lái)一篇微信JS SDK接入的幾點(diǎn)注意事項(xiàng)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • uniapp中scroll-view基礎(chǔ)用法示例代碼

    uniapp中scroll-view基礎(chǔ)用法示例代碼

    我們?cè)陧?xiàng)目中往往都能遇到實(shí)現(xiàn)左右滑動(dòng)跟上下滑動(dòng)的需求,下面這篇文章主要給大家介紹了關(guān)于uniapp中scroll-view基礎(chǔ)用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析

    javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析

    這篇文章主要介紹了javascript淺層克隆、深度克隆對(duì)比及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • javascript如何合并多層級(jí)數(shù)組

    javascript如何合并多層級(jí)數(shù)組

    這篇文章主要介紹了javascript如何合并多層級(jí)數(shù)組問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • js word表格動(dòng)態(tài)添加代碼

    js word表格動(dòng)態(tài)添加代碼

    最近聽(tīng)說(shuō)了一個(gè)名詞word宏編程。自己也學(xué)習(xí)了一下js動(dòng)態(tài)添加word表格
    2010-06-06
  • 基于JavaScript實(shí)現(xiàn)新年賀卡特效

    基于JavaScript實(shí)現(xiàn)新年賀卡特效

    本文介紹了一款超級(jí)炫酷的2022新年快樂(lè)html網(wǎng)頁(yè)特效,霓虹的城市夜景和絢爛的煙花很是特別,該html頁(yè)面還有交互效果,點(diǎn)擊鼠標(biāo)就會(huì)呈現(xiàn)煙花綻放的特效。需要的可以參考一下
    2022-01-01
  • 微信小程序用canvas實(shí)現(xiàn)電子簽名

    微信小程序用canvas實(shí)現(xiàn)電子簽名

    這篇文章主要為大家詳細(xì)介紹了微信小程序用canvas實(shí)現(xiàn)電子簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 淺談JavaScript中面向?qū)ο蠹夹g(shù)的模擬

    淺談JavaScript中面向?qū)ο蠹夹g(shù)的模擬

    淺談JavaScript中面向?qū)ο蠹夹g(shù)的模擬...
    2006-09-09
  • Elasticsearch實(shí)現(xiàn)復(fù)合查詢高亮結(jié)果功能

    Elasticsearch實(shí)現(xiàn)復(fù)合查詢高亮結(jié)果功能

    這篇文章主要介紹了Elasticsearch實(shí)現(xiàn)復(fù)合查詢,高亮結(jié)果功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解JS如何實(shí)現(xiàn)文字溢出時(shí)用省略號(hào)...顯示

    詳解JS如何實(shí)現(xiàn)文字溢出時(shí)用省略號(hào)...顯示

    這篇文章主要為大家詳細(xì)介紹了JavaScript如何實(shí)現(xiàn)當(dāng)文本內(nèi)容過(guò)長(zhǎng)時(shí),中間顯示省略號(hào)...,兩端正常展示,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02

最新評(píng)論

黄浦区| 邹平县| 商都县| 沾化县| 巴马| 高要市| 老河口市| 额济纳旗| 如皋市| 兴国县| 台前县| 平乐县| 名山县| 阳江市| 满城县| 佛山市| 德兴市| 永新县| 曲水县| 靖西县| 收藏| 琼海市| 平度市| 庄河市| 抚宁县| 皋兰县| 盈江县| 桓台县| 壤塘县| 大余县| 沙坪坝区| 内乡县| 临桂县| 莎车县| 北海市| 镇远县| 安泽县| 满洲里市| 巴中市| 水富县| 大城县|