php 私有方法的问题

classCC{private$attr1;functionCC(){$this->attr='123';}privatefunctionshow(){return123... class CC{
private $attr1;
function CC(){
$this->attr = '123';
}
private function show(){
return 123;
}
public function __get($name){
return $name;
}
}
$c = new CC();
echo $c->attr1.'<br/>'; // 123
echo $c->show(); // 错误

__get,是不是只能返回私有属性?
私有方法,如何返回?
展开
 我来答
匿名用户
2015-07-10
展开全部
  php 私有方法简单来说是防止外人用这个方法,用$ob->name()调用私有方法就会出错,为了避免混乱。
  私有方法主要是服务类的内部的,因为累的内部有很多重复的东西 或者模块的东西,就可以用私有方法把这些东西分离出去,同时又不让外面的访问,另外也为安全性着想;
  例如:
  class Product {
  public function index() {
  $this->geList();
  }
  private function getList() {
  //...........................
  }
  }
百度网友a19d193
2013-03-28 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1497万
展开全部
你的理解不大正确
__get($name)方法会在你请求了未定义为public的属性时被调用
对于未定义为public的方法,对应的处理函数为__call($name, $parameters...)
class c {
public function __get($name) {
if (isset($this->$name)) {

return $this->$name;

} else {

die('Invalid attribute:' . $name);

}

}
public function __call($name) {
....//这个比较复杂,看手册吧

}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仰望星空派EXfdd
2013-03-28 · TA获得超过213个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:98.8万
展开全部
private function show(){
return 123;
}

这个只能在类里面使用。。。

你可以设为公共
public function show() {}

就可以使用了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式