1樓:團毒七七
你總共提了三個問題,三個問題都是關於訪問許可權控制的,建議你將物件導向的訪問許可權控制的那部分給學習一下。
(1)類裡的變數是否一定要宣告為成員屬性,答:不一定,在一個類中,有建構函式、屬性、方法;未在方法和建構函式中宣告的變數為屬性,屬性是體現這一個類(物件)的特性的描述,他是這個類的特性的描述,這個類的狀態的改變將會隨著這些屬性值的改變而改變。如果某一變數不屬於這個類的屬性,當然可以宣告在別的地方,只要在訪問許可權內,當然也可以訪問,就像foreach($this->post as $key=>$value),$key與$value都不是類的屬性,當然不用宣告在類的屬性部分了,這裡的$key與$value便成了這個方法的區域性變數。
(2)非類的屬性,絕對不能用$this->來訪問,$this指的是當前物件,$this->所指向的是當前物件的屬性或許方法,既然不是類的屬性,當然不能用$this->來訪問了,
2樓:
逐個回答你的問題吧 。
1)類內不宣告的變數不屬於成員變數
2)可以直接訪問變數,但在類外部訪問時,你會發現,成員變數根本就沒變化。
3)既然你使用了類,那麼你就是想在類外部訪問這些成員或方法,否則直接用函式還方便。
3樓:匿名使用者
類裡面宣告的不是變數,是類屬性.
物件裡也可以用變數,和常規變數一樣使用.
但是屬性不同,屬性只屬於類.類自身呼叫屬性就要用到$this. 被例項化的物件也可以呼叫: 物件名->屬性; 但必須保證屬性是公共的: public
建議再學習一下oo的理論基礎.
php 物件導向中成員屬性的宣告
4樓:匿名使用者
為了向後相容 php 4,php 5 宣告屬性依然可以直接使用關鍵字 var來替代(或者附加於)public,protected 或 private。但是已不再需要 var 了。在 php 5.
0 到 5.1.3,var 會被認為是廢棄的,而且丟擲 e_strict 警告,但是 5.
1.3 之後就不再認為是廢棄,也不會丟擲警告。
如果直接使用 var 宣告屬性,而沒有用 public,protected或 private 之一,php 5 會將其視為 public。
檢視你的php版本是不是在php 5.0 到 5.1.3, 如果是的話就會報錯。
php物件導向中對屬性和方法定義的問題
5樓:匿名使用者
對屬bai性或方法的訪問控制,是du通過zhi在前面新增關鍵字dao public、protected 或 private 來實現的。由 public 所定回義的類成員可以在任答何地方被訪問;由 protected 所定義的類成員則可以被其所在類的子類和父類訪問(當然,該成員所在的類也可以訪問);而由 private 定義的類成員則只能被其所在類訪問。
php類定義了屬性,類中的方法要使用預設值怎麼辦?
6樓:風吹裙jj涼
每個方法都必須要定義的引數就可以直接定義個類屬性了,如果不變的話可以直接public $arg='***';
如果隨著場景不同這個值可能會發生變化,就把賦值放到構造方法裡public function __construct($aa)$obj = new exp($aa);
下面的方法就不用傳引數了,直接呼叫$this->arg就可以了再如果每次呼叫不通的方法,變數arg都不同,就不要定義屬性了,直接給方法傳值就可以了。
7樓:匿名使用者
類外給成員屬性賦值:$obj->arg = $arg;
初始化時候進行賦值:
__construct($arg='')
類中其他成員方法通過$this->arg都可以呼叫。
php 物件導向中成員屬性的宣告
為了向後相容 php 4,php 5 宣告屬性依然可以直接使用關鍵字 var來替代 或者附加於 public,protected 或 private。但是已不再需要 var 了。在 php 5.0 到 var 會被認為是廢棄的,而且丟擲 e strict 警告,但是 5.之後就不再認為是廢棄,也不會...
c在類A外部宣告成員變數int A add 0和在類A中宣告成員變數宣告int add 0是不是一樣的有區別麼
1.一般資料成員 變數 在類內定義,在建構函式中初始化,對是否使用初始化列表無要求 class a 初始化列表初始化普通資料成員 private int x int y 或者 class a a a int a,int b 2.const資料成員在類內定義,在建構函式中初始化,且只能在建構函式的初始...
例項成員和類成員的區別,類成員變數和例項成員變數分別指什麼有什麼區別
1全部1.例項成員 例項成員包括例項成員變數和例項成員方法,例項成員變數 物件的欄位 和方法 物件的方法 是隸屬於物件的,例項變數的值代表了該物件的狀態,例項成員方法代表了該物件的行為。只有建立了物件之後才能訪問例項成員變數和例項成員方法,通過 物件名.變數名 方法名 的方法可以訪問例項成員 2.類...