老莫的笔记本  
  
查看: 900|回复: 0

PHP 类

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-7-22 00:42:39 | 显示全部楼层 |阅读模式
嘛是类呢?  到现在还不懂可以去死了;
不过这里有个坑我没踩完,回头踩踩!!!
  1.     class Car
  2.     {
  3.         public  $name = '汽车' ;   // 定义公共属性
  4.               //可以在外部调用时根据需要改变属性的值或者赋予未定义的属性值。
  5.         protected  $shop = '4S店' ;   // 定义受保护属性
  6.               // 子类可以调用,外部不能调用 ,但是实例化的对象无法使用【可以通过public 方法改变此值】。
  7.         private $pop = 'laomo' ;     //定义 私有属性
  8.               // 子类不能调用、外部不能调用;
  9.               
  10.         public function showShop(){
  11.             return $this -> shop.'<br/>        }
  12.         public function showPop(){
  13.             return $this -> pop.'<br/>        }
  14.         // 创建对象时,构造方法会被自动调用,构造方法可以确保必要的属性设置,并完成任何需要准备的工作
  15.         public function __construct(){
  16.             // $this->name = $name;      // 使用伪变量$this给每个变量赋值
  17.             // $this->shop = $shop;
  18.             // $this->pop = $pop;
  19.             print '构造函数被调用<br/>        }
  20.     }
  21.     // 测试
  22.     $car = new Car();
  23.     echo $car->name;  //成功
  24.     // echo $car->shop;  // 错误 受保护属性不被外部访问
  25.     // echo $car->pop;   //错误 私有属性不被外部访问
  26.     // 换外部方法访问
  27.     echo $car->showShop();  // 通过 函数访问内部受保护属性 成功
  28.     echo $car->showPop();  // 通过 函数访问内部私有属性 成功
  29.    
  30.     // 子类测试
  31.     // // 若派生类没有定义构造方法,则它在实例化是会自动调用父类的构造方法。子类默认继承父类所有的 public 和 protected 方法,但不继承 private 方法和属性
  32.     class Lanniao extends Car
  33.     {
  34.         // 这样的取值有问题  parent:: 属性名是错误的, 应该是
  35.         // public $amm = shop;
  36.         function __construct(){
  37.             print '进入了子类        }
  38.         function abc(){
  39.             $ab = parent::showShop();
  40.             $ac = parent::showPop();
  41.             echo '<br/>子类访问测试——————'.$ab;
  42.             echo '<br/>子类访问测试——————'.$ac;   // 私有属性也可以这么访问 但是直接访问不行
  43.         }
  44.         
  45.       
  46.     }
  47.     $c = new Lanniao();
  48.     $c -> abc();
  49.     echo $c -> name;
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表