訪問控制
訪問控制通過關鍵字public,protected和private來實現。被定義為公有的類成員可以在任何地方被訪問。被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。
類屬性必須定義為公有、受保護、私有之一。為相容php5以前的版本,如果採用 var 定義,則被視為公有。
class car {
$speed = 10; //錯誤 屬性必須定義訪問控制
var $speed = 10; //相當於public
public $name; //定義共有屬性
類中的方法可以被定義為公有、私有或受保護。如果沒有設定這些關鍵字,則該方法預設為公有。
class car {
//預設為共有方法
function turnleft() {
如果建構函式定義成了私有方法,則不允許直接例項化物件了,這時候一般通過靜態方法進行例項化,在設計模式中會經常使用這樣的方法來控制物件的建立,比如單例模式只允許有乙個全域性唯一的物件。
class car {
private function __construct() {
echo 'object create';
private static $_object = null;
public static function getinstance() {
if (empty(self::$_object)) {
self::$_object = new car(); //內部方法可以呼叫私有方法,因此這裡可以建立物件
return self::$_object;
//$car = new car(); //這裡不允許直接例項化物件
$car = car::getinstance(); //通過靜態方法來獲得乙個例項
php訪問控制
訪問控制通過keywordpublic,protected和private來實現。被定義為公有的類成員能夠在不論什麼地方被訪問。被定義為受保護的類成員則能夠被其自身以及其子類和父類訪問。被定義為私有的類成員則僅僅能被其定義所在的類訪問。類屬性必須定義為公有 受保護 私有之中的乙個。為相容php5曾經...
PHP 訪問控制(可見性)
define myclass class myclass obj new myclass echo obj public 這行能被正常執行 echo obj protected 這行會產生乙個致命錯誤 echo obj private 這行也會產生乙個致命錯誤 obj printhello 輸出 p...
PHP中 類的訪問控制
在php中主要通過public protectd private等關鍵字來定義訪問許可權。public 被public修飾的屬性和方法,可以在程式中任何位置被訪問,而且可以被子類繼承。php中,類方法的訪問許可權預設都是public。protected 被protected修飾的屬性和方法,可以在所...