PHP面向对象三大特性①

面向对象三大特性:

1.封装

2.继承

3.多态

今天学习了第一个特性封装

封装的目的:让类更加安全,不让外界访问类中的数据

封装的方法:①把类中的成员变量改成private,然后做方法实现变量的取值和赋值,并且可以在方法里加限制条件。(缺点是需要对每一个成员变量添加方法,代码量增大,不是                     很方便。)

                 ②使用类里面提供的魔术方法也可以实现变量的取值和赋值。主要用到2个函数:

                    function __set($任意变量名1,$任意变量名2)

                   {

                   }

 

                   function __get($任意变量名3)

 

                   {

 

                   }

                   __set特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数然后调用__set方法

                   __get特点:会自动执行,把取值语句中的变量名作为参数然后调用_get方法


 

 

例:

class Human

{  

    private $Name;

    private $Age;

    private $Sex;

    private $Nation;

              

     function __set($name,$value)

      {

          if($name==Age)

            {

                   if($value>20&&$value<50)

                    {

                         $this->$name =$value;

                    }

            }

          else

           {

               $this->$name =$value;

           }

      }

      

     function __get($name)

      {

         return $this->$name;

      }

}

$eg = new Human();

$eg->Name="李四"; //正常显示

$eg->Age=30;     //正常显示

$eg->Age=10;    //不符合条件,返回NULL

var_dump($eg);

posted @ 2016-04-26 15:34  天照丶鼬  阅读(193)  评论(0编辑  收藏  举报