PHP物件導向中 get和 set以及

2021-06-08 12:04:03 字數 980 閱讀 5111

這兩個函式主要用在物件導向中。

類有很多private

屬性的變數,這些物件在類外是不能被呼叫的,但是有時候你卻非常的想在類外對這類物件進行賦值操作,如果你是一名

c++程式設計師的話肯定會這樣做

:

class a

}

這樣就可以對私有變數name

進行賦值,但是這樣的缺陷是,你要是在類外想對id和

age賦值的時候需要接著再寫兩個函式。

如果是php

程式的話,遇到此類問題你就會從容多了。因為

php為我們提供了

__set

函式。

對於這幾個函式,我是這麼理解的。

__set 可以修改對應私有變數的值,同時也對私有變數進行了一些特殊處理,這個特殊處理的結果就是

isset()

變數,返回值為真。

__get 外部可以直接獲取變數的值。

__unset 呼叫這個函式相當於登出了變數,

__isset

的時候返回

false

下面我們就看看php

是怎麼解決這個問題的。以下是一段

php**:

用法就是這樣的

class base

function __get($property_name)

function __isset($property_name)

function __unset($property_name) }

$p = new base();

$p->name = "php code";/*可以直接對name賦值,無視其private屬性*/

echo $p->name; /*可以直接列印*/

unset($p->name); /*取消name外部可見的屬性*/

echo $p->name; /*這個時候就非法了*/

關於C 中get和set

在程式中經常碰到get set,不甚明白,在網上查詢時也說的迷迷糊糊,所以整理下,以學的明白透徹點。有兩個類person public class person public class person 第乙個型別的name屬性未封裝,其name屬性直接通過public關鍵字暴露給系統中的其他類了,而...

JavaScript中Get和Set訪問器的實現

我們常用的實現方法可能是這樣的 function field val this setvalue function val var field new field test field.setvalue test2 field.getvalue return test2 標準的get和set訪問器的...

php物件導向分頁,PHP中物件導向的分頁類

page new page 53,10 p page rendor echo var dump p echo 分頁類 class page protected url url protected pagecount 總頁數 protected total 總條數 protected num 每頁顯示...