【前言】
? ? 本文总结下类的封装性
?
【主体】
类的封装性
封装性:类中的某些方法或属性不允许外部调用
class="php"><?php class Human{ //方法名和类名一致时会被理解为构造方法 public function aa(){ echo "调用1"; } public function __construct(){//通过调用构造函数来间接调用方法aa() $this -> aa();//我是内部调用 } } $a = new Human();//我是外部调用 ?>
?
类似于ATM机,只能输入密码,而不能查询。因为这里只开放了输入对比的接口
不封装的缺点:可以在外部调用获取内部函数或变量,安全性差
<?php class Atm{ //返回数据库存储的密码 public function getPwd(){ return '123456'; } //对比密码 public function checkPwd($pwd){ return $this -> getPwd() == $pwd; } } $atm = new Atm(); //不封装时在外部会可以调用到内部函数,获取密码 echo '存储密码为'.$atm->getPwd()."<br>"; if($atm -> checkPwd('123456')){ echo "密码输入正确"; }else{ echo "密码输入错误"; } ?>
?
为了封装函数,保护重要数据。将返回数据库存储密码的行的权限改为protected(保护),则该函数便被封装了起来
通过调用公共接口即可间接调用方法
//返回数据库存储的密码 protected function getPwd(){ return '123456'; }
?
?
?
?
?
.