4 物件導向的PHP之作用域

2022-01-23 06:45:06 字數 1866 閱讀 9445

1.  字段作用域

php支援的字段作用域有: public、private、protected、final、static

(1)public

訪問方式: 公共字段可以由相應的物件直接操作和訪問。

注意事項:在oop中並不鼓勵使用公共字段,因為直接訪問使得類無法很容易地完成某種資料驗證。

(2)private

訪問方式:指定為私有的字元按不能由類例項化的物件直接訪問,也不能由子類使用。

注意事項:私有字段必須通過公共介面來訪問,這符合oop的封裝原則。

(3)protected

與函式通常需要只在內部使用的變數一樣,類也可以包含只在內部使用的字段。這些字段稱為保護字段。

訪問方式: 在繼承的子類中也可以訪問和操作保護字段,這是私有欄位所沒有的特性。

作用: 如果希望拓展類,就應當使用保護欄位而不是私有字段。

(4)final

訪問方式:在為字段設定final作用域時,將阻止在子類中覆蓋這個字段。

(5)static

訪問方式:提供所有類共享的字段,這些欄位與所有類的例項有關,但不能由任何特定的物件呼叫。

2. 方法作用域

php支援6種方法作用域:public、private、protected、abstract、final、static

(1)public

訪問方式:公共方法可以在任何位置任何時間訪問。

(2)private

訪問方式:標記為private的方法只能在類內部使用,不能由例項化的物件呼叫,也不能由類的子類使用。

作用:  一般這類方法只用作作為其他方法的「輔助方法」。

(3)protected

訪問方式: 標記為protected的方法只能在該類及其子類中使用。

注意事項: 不能再類外部呼叫具有protected作用域的方法。

(4)abstract

訪問方式: abstract方法只在父類中宣告,在子類中實現。

(5)final

訪問方式: 標記為final的方法可以防止被子類覆蓋。

(6)static

訪問方式:提供所有類共享的方法,這些方法與所有類的例項有關,但不能由任何特定的物件呼叫。

<?php

/** * 類的概念

*/class staff

public function clockout()

}$employee = new staff ();

// 在類外部操作共有字段,不推薦此使用方法

$employee->name = "yeahwell";

$name = $employee->name;

echo "新建的雇員名為$name

";// $employee->name = "123456"; //無資料驗證

// 使用常量

echo "π為" . staff::pi . "

";// 在類外部呼叫共有方法

$employee->clockin ();

// staff::clockout ();

/* * php5.4.5環境下將有此異常 strict standards: non-static method staff::clockout() should

* not be called statically in d:\ywprogramfiles\programer\server\apache

* software

* foundation\apache2.2\htdocs\zendworkspace\phpmanual\oop\oop_work_domain.php

* on line 41 member clocked out at 05:16:47

*/?>

PHP基礎之作用域

將值付給超全域性變數 post num 10 function fun1 fun1 echo 將值付給超全域性變數 function fun2 fun2 echo get num word 泥萌 function fun1 fun1 echo function fun2 fun2 echo word...

PHP學習(4)作用域

感覺這個跟別的語言挺不一樣的 所以單獨記下來,網上搜的文章 php作用域 作用域 變數能被訪問到的區域 php中的作用域與js中有所不同 js中函式內可以直接訪問到全域性變數,而在php中則無法直接訪問 php變數的作用域可以分為三種 一 全域性變數 簡單理解,就是函式外部定義的變數,只能在函式外部...

C 學習筆記之作用域為類的常量和作用域內的列舉

一 作用域為類的常量 有些情況下,使符號常量的作用域為類很有用。如,類宣告 不是定義 可能使用字面值30來指定陣列長度,由於該常量對於所有物件來說都是相同的,因此建立乙個由所有物件共享的常量是個不錯的主意,也許我們想像下面這樣做 複製 1 class weather 2 複製 要注意的是,我們這是在...