PHP類中的 get 和

2021-09-07 19:37:06 字數 1485 閱讀 6523

類預設自帶的__get()和__set()

當試圖獲取乙個不可達變數時,類會自動呼叫__get

所以在php中相當於可以直接用物件訪問私有屬性(因為會自動呼叫__get()方法)

a、new物件($modeltime =newmodeltime();

)b、用new出來的物件直接呼叫屬性(echo $modeltime->perdayts;die;

)c、在類中要寫__get()方法返回值

10     public function __get($my_var)

當試圖獲取乙個不可達變數時,類會自動呼叫__get。

同樣的,當試圖設定乙個不可達變數時,類會自動呼叫__set。

在**中,這兩個並不是什麼非用不可的函式。

例如:class test

public function __set($vname,$value)

}

$t = new test;

echo $t->a;//這裡試圖要列印出私有變數

$t->b=3;//這裡試圖要把私有變數進行設定

想要直接對私有變數操作,當然是做不到的。

於是在讀取的時候,呼叫__get(),輸出「you can not get」;

在設定的時候,呼叫__set(),輸出「you can not set」。

順便提一下,__get()和__set()函式要設定為public,要不然會warning。

__get()和__set()函式定義時的引數分別為1個和2個,不管函式中到底有沒用,都是不可省略的。

通過修改__get()和__set()函式內部的語句,就可以實現在外部呼叫類的私有變數。

例如:private __get($vname)

如果$vname的值是a,那麼就返回了正確的值。

__set()也同理。

參考:php類中的__get()和__set函式到底有什麼用? - east2_100 -

關鍵**

1

class

time

extends

common29

10public

function __get($my_var

)

呼叫

1

public

function

test1()

PHP中 POST和 GET的用法

post和get是指 頁面提交的兩種方式 get 引數都體現在url上,可以用於翻頁,簡單查詢,get只能接收2m以下的內容,所以有侷限性,另外由於內容是可見的,安全性就下降了,post 用於頁面表單 提交,上傳檔案,這些操作。大小沒有限制,也不會在位址列上顯示。post 變數是乙個陣列,內容是由 ...

PHP中get和post區別?

在這裡為大家整理了兩種get和post的區別。第一種 get在瀏覽器回退時是無害的,而post會再次提交請求。get產生的url位址可以被bookmark 標記 而post不可以。get請求會被瀏覽器主動cache 儲存 而post不會,除非手動設定。get請求只能進行url編碼,而post支援多種...

PHP中class裡面 get和

當試圖獲取乙個不存在的變數時,類會自動呼叫 get。當試圖設定乙個不存在的變數時,類會自動呼叫 set。例如 在tp中我們渲染後端變數到前端模版怎麼做呢?一般來說我們是這樣的 this assign vote data vote data 但實際上我們可以這樣寫 this vote data vot...