當前位置:首頁 » 文件傳輸 » php訪問一個類的成員
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

php訪問一個類的成員

發布時間: 2022-08-27 03:28:17

❶ PHP中,怎麼在成員函數當中調用自己的成員屬性除了靜態調用之外還有別的方法嗎

和靜態數據成員一樣,靜態成員函數是類的一部分,而不是對象的一部分。如果要在類外調用公用的靜態成員函數,要用類名和域運算符「∷」。
如 Box∷volume( ); 實際上也允許通過對象名調用靜態成員函數,如 a.volume( ); 但這並不意味著此函數是屬於對象a的,而只是用a的類型而已。 靜態成員函數的作用是為了能處理靜態數據成員。 可以說,靜態成員函數與非靜態成員函數的根本區別是:非靜態成員函數有this指針,靜態成員函數並不屬於某一對象,它與任何對象都無關,靜態成員函數沒有this指針。
由此決定了靜態成員函數不能訪問本類中的非靜態成員。 在C++程序中,靜態成員函數主要用來訪問靜態數據成員,而不訪問非靜態成員。假如在一個靜態成員函數中有以下語句: cout<<height<<endl; //若height已聲明為static,則引用本類中的靜態成員,合法 cout<<width<<endl; //若width是非靜態數據成員,不合法。但是,並不是絕對不能引用本類中的非靜態成員,只是不能進行默認訪問,因為無法知道應該去找哪個對象。如果一定要引用本類的非靜態成員,應該加對象名和成員運算符「.」。如 cout<<a.width<<endl; //引用本類對象a中的非靜態成員

❷ php類中的數組成員無法訪問

public function __set($filed, $value)//$filed

if(array_key_exists($field, $this->fields))//$field,與上不同,改為統一的field

然後private $fields改為public;
就可以:$u=new User();$u->a='xxx';echo $u->fields['a'];

若想訪問$u->a,則在 __set方法里加上:$this->$field = $value;

❸ PHP將匿名類被嵌套進普通類時,如何訪問這個外部類的私有成員和受保護成員

請提供一個get方法,或者php8使用new class()實例化

❹ PHP 裡面 」::「,」-> 「 這兩個符號是什麼意思

:: 是調用靜態方法或者成員變數
例如: demo 是個靜態類. 有個show的方法;
那麼調用的時候就得這么來: demo::show();

如果 demo 是個非靜態類.
那就用:
$obj = new demo();
$obj->show();

❺ php -> =>的問題

在PHP裡面 ->用來引用對象的成員,包括屬性和方法,=>只用來數組賦值。

❻ 關於 php 類成員屬性聲明和訪問的問題

你總共提了三個問題,三個問題都是關於訪問許可權控制的,建議你將面向對象的訪問許可權控制的那部分給學習一下。
(1)類里的變數是否一定要聲明為成員屬性,
答:不一定,在一個類中,有構造函數、屬性、方法;未在方法和構造函數中聲明的變數為屬性,屬性是體現這一個類(對象)的特性的描述,他是這個類的特性的描述,這個類的狀態的改變將會隨著這些屬性值的改變而改變。如果某一變數不屬於這個類的屬性,當然可以聲明在別的地方,只要在訪問許可權內,當然也可以訪問,就像foreach($this->post as $key=>$value),$key與$value都不是類的屬性,當然不用聲明在類的屬性部分了,這里的$key與$value便成了這個方法的局部變數。
(2)非類的屬性,絕對不能用$this->來訪問,$this指的是當前對象,$this->所指向的是當前對象的屬性或許方法,既然不是類的屬性,當然不能用$this->來訪問了,

❼ 如何訪問PHP中的靜態函數中的私有成員

私有成員只有在函數內部才能訪問,直接self::key就可以了

❽ php this,self 靜態對象,成員的訪問

$app是外部對象,既然有static關鍵字,為什麼還可以用this訪問呢?
A: 通常動態對象中可以訪問靜態成員。只是不推薦但不禁止$this->靜態成員。主要用"類名::靜態成員"這種形式

問題標注里寫出了,$this-req的req是哪裡的對象呢?
A: 好像這些代碼已經混亂了$this->req明顯是下面Request類才有的成員

,private static和static private意義相同嗎?
A:相同無區別

❾ PHP中拜訪類中靜態對象的成員方法

1、echo
Human:$name
:類聲明完畢,就存在static屬性,並不依賴於對象。因此,靜態屬性只有一個(意思是在內存里,存放的位置並不是在對象里;如果在對象里,那實例化一個對象,就相應的有該靜態的位置,如height屬性);
2、print_r($p1):列印結果只有height屬性,而沒有name;
3、靜態屬性的值變化後,所有對象的該屬性值都會受到影響。
對於方法,無論是靜態的、還是普通的,都是存在於類內存空間中。證明也很簡單,new一個對象,print_r(對象)即可。
希望本文所述對大家的php程序設計有所幫助。