類預設自帶的__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 -
關鍵**
1class
time
extends
common29
10public
function __get($my_var
)
呼叫
1public
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...