php - 权限修饰符的问题
本文介绍了php - 权限修饰符的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
一直搞不懂 什么时候使用该使用public private protected哪个 网上很多形象的例子也都懂 只是说明了怎么用 但是没有说具体什么时候用哪个 为什么不都用public?自己写的类都是自己用 如果都用public 在实际开发中这样会出什么问题吗?一直搞不懂这个问题
class Woman{
public $name = "gaojin";
protected $age = "22";
private $height = "170";
public function info(){
echo $this->name;
}
}
$w = new Woman();
echo $w->info();
echo $w->name;
解决方案
现在我们举个例子:有个类实现了一个功能,做算术除法运算。
class count(){
public $a = 0;
public $b = 0;
public function setNumber($a,$b){
$this->a = $a;
$this->b = $b;
echo $this->compute();
}
private function compute(){
return $this->a/$this->b;
}
}
其中我们先定义变量a和b都为0;
然后实现了一个设置他们值的方法,同时输出计算结构,计算的过程由另一个compute方法实现。
现在正常该这么用这个类:
$obj = new count();
$obj->setNumber(1,2);
现在我们的compute方法是private,如果外面这么调用:
$obj->compute();
那么必然发生错误。
现在,如果我们把compute方法设置为public。
如果有个人他这么调用
$obj = new count();
$obj->compute();
$obj->setNumber(1,2);
问题出现了。由于开始我们给变量a和b都设置了值为0,那么除数岂不是出现了0.更加容易出错。
所以一个类中一些方法有必要隐藏起来不给外面人调用。
这篇关于php - 权限修饰符的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文