而微软 发表于 2015-11-19 09:52:50

PHP 类的访问控制与封装private修饰符

<?php
    /*
      封装就是把对象中的成员属性和成员方法加上访问修饰符,使其尽可能隐藏对象的               内部细节,以达到对成员的访问控制--切记不是拒绝访问

      private (私有的):被定义为 private 的成员,允许同一个类里的所有成员访问(调用方法是用:$this->方法名),
      但对于在该类外调用有private修饰的成员方法和在子类中调用都不允许的。
    */
    header("Content-type: text/html; charset=utf-8");
    class Cooking{
         var $food;//成员属性
         public function eatwhat($food){
         //类内通过$this调用成员属性并赋值一个变量$food
         echo $this->food=$food;
      }

      public function operation(){
                //在本类中调用前有private修饰符的成员方法
            $this->first();
            $this->second();
            $this->third();
      }
      //前面有private修饰符的成员方法是为其他成员方法服务的,如果不加上private修饰符,单独在类外调用,不知道成员方法是来干嘛的。
      private function first(){
            echo "我先烧开水"."<br/>";
      }
      private function second(){
            echo "然后再下面"."<br/>";
      }

      private function third(){
            echo "等面浮在水面上证明好了"."<br/>";
      }
    }
    //实例化一个对象obj
    $obj = new Cooking();
    $obj->eatwhat("面条");//在对象中调用成员方法,并给变量传一个值
    echo "<hr/>";
    $obj->operation();
    //$obj->first()在类外单独调用前有修饰符为private的成员方法是不行的。
?>


页: [1]
查看完整版本: PHP 类的访问控制与封装private修饰符