- 论坛徽章:
- 0
|
PHP5中private的好处演示
作者:axgle
- 我认为,类的好处以及private的好处,用例子来演示是最直接和有效的了。
- 使用类可以把多个If语句合并为一个,这样就避免了有几个操作就要写同样多个If语句进行判断的情形,同时添加一个新方法也不需要添加新的If语句。
- 但问题在于若我们这样做,用户可能访问到我们不愿意让他直接调用的方法(例如需要登陆或权限认证才能访问的方法)。
- 所以这里通过private关键字来限制,就解决了这个问题。
- <?php
- $blog=new blog;
- $method=$_GET['m'];//获得方法名称,用户可以在URL中任意输入方法名!
- if(method_exists($blog,$method)) {//只需要"一个"If语句统一处理!简单的判断给的方法是否在blog中
- $blog->$method();//执行类中的方法
- }
- class blog {
- function view() {
- echo "查看blog";//任何人都可以查看
- }
- function delete() {
- $is_admin=true;
- if($is_admin) {//管理员才可以删除
- $this->do_delete();//执行实际删除过程
- }
- }
- private function do_delete() {//通过private关键字,限定该方法不允许直接通过URL访问!
- echo "删除blog";
- }
- }
-
- ?>
- <hr>
- <a href="?m=view">view</a>:任何人都可以查看<br>
- <a href="?m=delete">delete</a>:这里假设你是管理员 <br>
- <a href="?m=do_delete">do_delete,没有权限(不能直接调用私有方法)</a>:这里的错误消息可以依靠ReflectionMethod来处理(介绍从略)
复制代码 |
|