亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

【短文】為什么我不在PHP的私有變量用下劃線了?

DevWiki / 2428人閱讀

摘要:為什么我不在的私有變量用下劃線了首先大家都知道在面向?qū)ο缶幊讨袑?duì)修改封閉,對(duì)擴(kuò)展開(kāi)放的原則所以不對(duì)屬性,違反原則。

前言

首先這個(gè)問(wèn)題沒(méi)什么好爭(zhēng)論的。類似這種關(guān)于代碼規(guī)范的問(wèn)題,目前我的觀點(diǎn)是:

跟隨你面對(duì)的團(tuán)隊(duì),跟隨你面對(duì)的代碼塊

最近兩次被別人問(wèn)到php私有變量加下劃線的問(wèn)題,由于我開(kāi)始也是這么做的,但是最后還是沒(méi)用下劃線了。最后想想還是把自己的想法說(shuō)下吧。

為什么我不在PHP的私有變量用下劃線了?

首先: 大家都知道在面向?qū)ο缶幊讨?em>對(duì)修改封閉,對(duì)擴(kuò)展開(kāi)放的原則(所以不對(duì)屬性public,違反原則)。

但是我們的代碼總是事與愿違,在某些場(chǎng)景中我們需要對(duì)外可修改我們的屬性。這里就會(huì)經(jīng)常見(jiàn)到一些getXXXsetXXX之類的成員方法。

然而: 對(duì)于getXXXsetXXX,我更習(xí)慣于魔術(shù)方法__get__set,這兩個(gè)魔術(shù)方法其實(shí)就可以運(yùn)用到這個(gè)場(chǎng)景,因?yàn)榭梢越y(tǒng)一對(duì)外暴露屬性,并加以控制,防止的濫用,符合面向?qū)ο蟮乃枷搿?/p>

但是: 對(duì)外暴露一個(gè)加下劃線的私有屬性,看起來(lái)好怪(既然私有的被外部訪問(wèn)了為啥還加下劃線)。

// 像這樣
(new Demo)->_XXX

所以: 我會(huì)在魔術(shù)方法__get__set里面統(tǒng)一加下劃線,這樣這個(gè)私有屬性就可以不帶下劃線訪問(wèn)了。

class Demo
{
    public function __set($name = "", $value = "")
    {
        $argu = "_{$this->$name}";
        return $this->$argu = $value;
    }

    public function __get($name = "")
    {
        $argu = "_{$this->$name}";
        return $this->$name;
    }
}

這樣: 對(duì)外可以暴露的私有屬性就沒(méi)下劃線了。

可是: 魔術(shù)方法__get__set里面加這個(gè)又感覺(jué)怪怪的。

結(jié)果: 所以干脆不加了。

其次: 想了想也沒(méi)哪有這個(gè)硬性規(guī)定。

最后如下:

class Demo
{
    public function __set($name = "", $value = "")
    {
        return $this->$name = $value;
    }

    public function __get($value = "")
    {
        return $this->$value;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28958.html

相關(guān)文章

  • PHP經(jīng)驗(yàn)總結(jié) - 聊聊面向?qū)ο?/b>

    摘要:例如汽車這個(gè)名詞可以理解為汽車的總類,但這輛寶馬汽車則是一個(gè)具體的汽車對(duì)象。當(dāng)在類成員方法內(nèi)部調(diào)用的時(shí)候,可以使用偽變量調(diào)用當(dāng)前對(duì)象的屬性。在面向?qū)ο笾袆t被稱之為方法。 簡(jiǎn)述 現(xiàn)在大伙都在講面向?qū)ο缶幊?,但是我們也得先找著一個(gè)對(duì)象是不?不然怎么面向?qū)ο??怎么編程?--- 笑話一則,但是理不虧,要搞P面向?qū)ο缶幊?,我們起碼要先搞懂對(duì)象(還有類)是什么?只有了解它,理解它,你才能駕馭它。...

    lpjustdoit 評(píng)論0 收藏0
  • 函數(shù)式編程對(duì)JavaScript進(jìn)行斷舍離

    摘要:函數(shù)式編程一開(kāi)始我并不理解。漸漸地,我熟練掌握了使用函數(shù)式的方法去編程。但是自從學(xué)習(xí)了函數(shù)式編程,我將循環(huán)都改成了使用和來(lái)實(shí)現(xiàn)。只有數(shù)據(jù)和函數(shù),而且因?yàn)楹瘮?shù)沒(méi)有和對(duì)象綁定,更加容易復(fù)用。在函數(shù)式的中,這些問(wèn)題不復(fù)存在。 譯者按: 當(dāng)從業(yè)20的JavaScript老司機(jī)學(xué)會(huì)函數(shù)式編程時(shí),他扔掉了90%的特性,也不用面向?qū)ο罅?,最后發(fā)現(xiàn)了真愛(ài)?。。?! 原文: How I rediscov...

    dkzwm 評(píng)論0 收藏0
  • PHP編碼規(guī)范

    摘要:為什么需要編碼規(guī)范為了提高工作效率,保證開(kāi)發(fā)的有效性和合理性。在文件編碼中,選擇推薦在換行符中,選擇推薦文件命名程序的文件名和目錄名都采用有意義的英文命名。最后最后說(shuō)的是,本規(guī)范不是強(qiáng)制,也不是標(biāo)準(zhǔn)?;貜?fù)編碼規(guī)范即可。 為什么需要編碼規(guī)范? 為了提高工作效率,保證開(kāi)發(fā)的有效性和合理性。 為了提高代碼可讀性和可重復(fù)利用性,從而節(jié)約溝通成本。 本文主要參考了 PEAR 規(guī)范,并進(jìn)行適當(dāng)...

    xuweijian 評(píng)論0 收藏0
  • 三篇文章帶你極速入門php(一)之語(yǔ)法

    摘要:本文適合閱讀用戶有其他語(yǔ)言基礎(chǔ)的童鞋看完語(yǔ)法教程來(lái)回顧一下的童鞋傳送門,想全面看一下語(yǔ)法推薦這里毫無(wú)基礎(chǔ)然而天資聰慧頗有慧根不要左顧右看說(shuō)的就是你,老夫這里有一本從入門到放棄,觀你根骨清奇兩銀子賣給你如何看完本文后你會(huì)收獲到什么的變量的定義 本文適合閱讀用戶 有其他語(yǔ)言基礎(chǔ)的童鞋 看完w3cschool語(yǔ)法教程來(lái)回顧一下的童鞋(傳送門,想全面看一下php語(yǔ)法推薦這里) 毫無(wú)基礎(chǔ)然而天...

    loostudy 評(píng)論0 收藏0
  • php 語(yǔ)言特性學(xué)習(xí) (一)

    摘要:后面可以使用任意字符和下劃線例如非法的變量在函數(shù)中創(chuàng)建的,它的生命周期與函數(shù)一樣,在主腳本中生成的變量不在函數(shù)中不是全局變量,不能在函數(shù)中使用它,但是可以用來(lái)訪問(wèn)使用變量的名字作為字符串的關(guān)鍵字給程序員一個(gè)鼓勵(lì)唄微信支付寶 1.類的寫法 class MyClass { private $id = 19; public function __construct() { ...

    fuyi501 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<