讓我們先來(lái)看看yiichina中權(quán)威指南的描述:
這類(lèi)屬性的名字是不區(qū)分大小寫(xiě)的。如,$object->label 和 $object->Label 是同一個(gè)屬性。 因?yàn)?php 方法名是不區(qū)分大小寫(xiě)的。如果此類(lèi)屬性名和類(lèi)成員變量相同,以后者為準(zhǔn)。 例如,假設(shè)以上 Foo 類(lèi)有個(gè) label 成員變量, 然后給 $object->label = 'abc' 賦值,將賦給成員變量而不是 setter setLabel() 方法。這類(lèi)屬性不支持可見(jiàn)性(訪問(wèn)限制)。定義屬性的 getter 和 setter 方法是 public、PRotected 還是 private 對(duì)屬性的可見(jiàn)性沒(méi)有任何影響。這類(lèi)屬性的 getter 和 setter 方法只能定義為非靜態(tài)的,若定義為靜態(tài)方法(static)則不會(huì)以相同方式處理。對(duì) property_exists() 不能確定魔術(shù)屬性的正常調(diào)用。你應(yīng)該調(diào)用 canGetProperty() 或 canSetProperty()。如果此類(lèi)屬性名和類(lèi)成員變量相同,以后者為準(zhǔn)。 例如,假設(shè)以上 Foo 類(lèi)有個(gè) label 成員變量, 然后給 $object->label = ‘a(chǎn)bc’ 賦值,將賦給成員變量而不是 setter setLabel() 方法。
其實(shí)這句話就是說(shuō)嘛我們的setter和getter只對(duì)隱藏屬性和受保護(hù)屬性起作用。如果是public修飾符修飾的變量則直接會(huì)賦值和獲取,而不會(huì)經(jīng)過(guò)我們的setter或者getter,例子:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注