- 論壇徽章:
- 0
|
PHP5中private的好處演示
作者:axgle
- 我認(rèn)為,類的好處以及private的好處,用例子來演示是最直接和有效的了。
- 使用類可以把多個If語句合并為一個,這樣就避免了有幾個操作就要寫同樣多個If語句進(jìn)行判斷的情形,同時添加一個新方法也不需要添加新的If語句。
- 但問題在于若我們這樣做,用戶可能訪問到我們不愿意讓他直接調(diào)用的方法(例如需要登陸或權(quán)限認(rèn)證才能訪問的方法)。
- 所以這里通過private關(guān)鍵字來限制,就解決了這個問題。
- <?php
- $blog=new blog;
- $method=$_GET['m'];//獲得方法名稱,用戶可以在URL中任意輸入方法名!
- if(method_exists($blog,$method)) {//只需要"一個"If語句統(tǒng)一處理!簡單的判斷給的方法是否在blog中
- $blog->$method();//執(zhí)行類中的方法
- }
- class blog {
- function view() {
- echo "查看blog";//任何人都可以查看
- }
- function delete() {
- $is_admin=true;
- if($is_admin) {//管理員才可以刪除
- $this->do_delete();//執(zhí)行實(shí)際刪除過程
- }
- }
- private function do_delete() {//通過private關(guān)鍵字,限定該方法不允許直接通過URL訪問!
- echo "刪除blog";
- }
- }
-
- ?>
- <hr>
- <a href="?m=view">view</a>:任何人都可以查看<br>
- <a href="?m=delete">delete</a>:這里假設(shè)你是管理員 <br>
- <a href="?m=do_delete">do_delete,沒有權(quán)限(不能直接調(diào)用私有方法)</a>:這里的錯誤消息可以依靠ReflectionMethod來處理(介紹從略)
復(fù)制代碼 |
|