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';
        }

 

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2414493