php - 权限修饰符的问题

查看:72
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆