13.訪問型別
型別的訪問修飾符允許開發人員對類成員的訪問進行限制,這是php5 的新特性,但卻
是oop 語言的乙個好的特性。而且大多數oop 語言都已支援此特性。php5 支援如下3 種訪
問修飾符
public (公有的、預設的),private (私有的)和protected (受保護的)三種。
public 公有修飾符,類中的成員將沒有訪問限制,所有的外部成員都可以訪問(讀和寫)
這個類成員(包括成員屬性和成員方法),在php5 之前的所有版本中,php 中類的成員都是
public 的,而且在php5 中如果類的成員沒有指定成員訪問修飾符,將被視為public。
例:public $name;
public function say(){};
private 私有修改符,被定義為private 的成員,對於同乙個類裡的所有成員是可見的,即
是沒有訪問限制;但對於該類的外部**是不允許改變甚至讀操作,對於該類的子類,也不
能訪問private 修飾的成員。
例:private $var1 = 『a'; //屬性
private function getvalue(){} //函式
protected 保護成員修飾符,被修飾為protected 的成員不能被該類的外部**訪問。但是
對於該類的子類有訪問許可權,可以進行屬性、方法的讀及寫操作,該子類的外部**包括其的
子類都不具有訪問其屬性和方法的許可權。
例:protected $name;
protected function say(){};
private protectedwww.cppcns.com public
同乙個類中 √ √ √
類的子類中 √ √
所有的外部成員 √
**片段
複製** **如下:
<?php
/**
* define myclass
*/ class myclass
} $obj = new myclass();
echo $obj->public; //works
echo $obj->protected; // fatal error
echo $obj->private; // fatal error
$obj->printhello(); // shows public, protected and private
/**
* define myclass2
*/ class myclass2 extends myclass
} $obj2 = new myclass2();
echo $obj->public; //works
echo $obj2->private; // undefined
echo $obj2->protected; // fatal error
$obj2->printhello(); // shows public, protected2, not private
?>
**片段
複製** **如下:
另外在子類覆蓋父類的方法時也要注意一點,子類中方法的訪問許可權一定不能低於父類
被覆蓋方法的訪問許可權,也就是一定要高於或等於父類方法的訪問許可權。
例如,如果父類方法的訪問許可權是protected 那麼子類中要覆蓋的許可權就要是protected
和public,如果父類的方法是public 那麼子類中要覆蓋的方法只能也是public,總之子類中的
方法總是要高於或等於父類被覆蓋方法的訪問許可權。
本文標題: php物件導向全攻略 (九)訪問型別
本文位址: http:/wangluo/php/51695.html
php物件導向全攻略 (一) 物件導向基礎知識
1.物件導向的概念 物件導向程式設計 object oriented programming,oop,物件導向程式設計 是一種計算機程式設計架構,oop 的一條基本原則是電腦程式是由單個能夠起到子程式作用的單元或物件組合而成,oop 達到了軟體工程的三個目標 重用性 靈活性和擴充套件性。為了實現整體...
PHP 檔案上傳全攻略
1.表單部分 enctype multipart form data 表單的method必須是post 表單選項max file size隱藏域用於限制上傳檔案大小,它必須放在檔案表單元素前面,單位為位元組。如 複製 如下 2.處理上傳檔案 上傳時,php收到關於該檔案的資訊陣列,這些資訊可以在 f...
提公升PHP速度全攻略
php的優點之一是速度很快,對於一般的 應用,可以說是已經足夠了。不過如果站點的訪問量很高 帶寬窄或者其它的因素令伺服器產生效能瓶頸的時候,你可能得想想其它的辦法來進一步提高php的速度了。這篇文章將從幾個方面介紹如何做到這一點,從而令使用者瀏覽的時候更加 爽 優化 在這裡並不想再次告訴你如何寫更乾...