【前言】
? ? 本文总结下类的封装性
?
【主体】
类的封装性
封装性:类中的某些方法或属性不允许外部调用
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';
}
?
?
?
?
?
.