免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3597 | 回复: 4
打印 上一主题 下一主题

PHP5中private的好处演示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-03 15:26 |只看该作者 |倒序浏览
PHP5中private的好处演示
作者:axgle

  1. 我认为,类的好处以及private的好处,用例子来演示是最直接和有效的了。
  2. 使用类可以把多个If语句合并为一个,这样就避免了有几个操作就要写同样多个If语句进行判断的情形,同时添加一个新方法也不需要添加新的If语句。
  3. 但问题在于若我们这样做,用户可能访问到我们不愿意让他直接调用的方法(例如需要登陆或权限认证才能访问的方法)。
  4. 所以这里通过private关键字来限制,就解决了这个问题。

  5. <?php
  6. $blog=new blog;
  7. $method=$_GET['m'];//获得方法名称,用户可以在URL中任意输入方法名!
  8. if(method_exists($blog,$method)) {//只需要"一个"If语句统一处理!简单的判断给的方法是否在blog中
  9.         $blog->$method();//执行类中的方法
  10. }

  11. class blog {
  12.         function view() {
  13.                 echo "查看blog";//任何人都可以查看
  14.         }

  15.         function delete() {
  16.                 $is_admin=true;
  17.                 if($is_admin) {//管理员才可以删除
  18.                         $this->do_delete();//执行实际删除过程
  19.                 }
  20.         }

  21.         private function do_delete() {//通过private关键字,限定该方法不允许直接通过URL访问!
  22.                 echo "删除blog";
  23.         }
  24. }



  25. ?>
  26. <hr>
  27. <a href="?m=view">view</a>:任何人都可以查看<br>
  28. <a href="?m=delete">delete</a>:这里假设你是管理员 <br>
  29. <a href="?m=do_delete">do_delete,没有权限(不能直接调用私有方法)</a>:这里的错误消息可以依靠ReflectionMethod来处理(介绍从略)
复制代码

论坛徽章:
0
2 [报告]
发表于 2006-09-03 15:51 |只看该作者
搞得像java,我觉的php简单好用就行了。

论坛徽章:
0
3 [报告]
发表于 2006-09-03 18:17 |只看该作者
类中方法直接用GET来取得,本来就是一个错误的方法......

论坛徽章:
0
4 [报告]
发表于 2006-09-03 20:11 |只看该作者
你的意思是通过POST而非GET吗?

论坛徽章:
0
5 [报告]
发表于 2006-09-03 21:46 |只看该作者
原帖由 axgle 于 2006-9-3 20:11 发表
你的意思是通过POST而非GET吗?

楼主不是想问这个吧!你想表达的是在脚本语言中,
oo的泛运用吧!
GET和POST和你的主题根本没有关系,
oo在脚本和编译中的意义是不同的,什么继承呀封装呀,也许根本不是脚本oo的意义所在,
楼主的贴子所涉及的应用才是脚本oo的意义所在。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP