批改状态:合格
老师批语:
<?php// class关键字声明类class a{public $name ;//public公共成员protected $price ;//protected受保护的成员,在当前类中和子类中访问,类的外部不可访问private $sum ;//private私有成员,仅限本类中访问protected static $combined ; //static 关键字用来声明静态成员和方法// __construct 类的构造函数public function __construct($name = '',$price = '',$sum = ''){// $this是类实例的引用// 用$this关键字来对类的成员属性进行初始化$this->name =$name;$this->price=$price;$this->sum=$sum;}public function show(){return '名称:' .$this -> name.' 单价:'.$this->price . '元' . ' 数量: ' . $this->sum . '个';}public static function index($combined){// $this 代表当前对象!! 静态方法中应该使用 类名 、 self 或者 static 关键字来代替!return self::$combined = $combined;}public function combined(){$data = '名称:' .$this -> name.' 单价:'.$this->price . '元 数量: ' . $this->sum . '个 合计:' . $this ->price * $this->sum . '元';return $data;}}// new关键字用来实例化类$obj = new a('php',99,2);// 类实例调用//echo $obj -> show();echo '<br>';echo $obj -> combined();echo '<br>';// 注:类实例也可以访问静态方法,但不推荐这样用;并且类实例不能访 问静态成员echo $obj -> index('你好php111');echo '<br>';// 用静态访问静态方法//注:不能用静态访问普通成员和普通方法echo a::index('你好php');
<?phpclass static1{public static $name;protected static $age;public function __construct($name,$age){// self关键字为类的引用 仅限在本类中使用// 也可以使用static关键字来访问类中的静态方法及静态成员self::$name=$name;self::$age=$age;}public static function show(){return "姓名: ".self::$name . " 年龄:" . self::$age;}}// new static1('张三','25');// 在类外可以是类名方位静态方法及静态成员 无需new一个对象// echo static1::$name;echo static1::show();
trait类:
<?phptrait b{// trait: 理解为一个公共方法集// trait 借用了class语法实现的一个轻量级的"类",但不是类,所以不能"实例化"// 要使用trait的类中,在子类中使用use关键字引用它即可// 引入并继承trait b类// 为防止trait重名可以取别名:// use b{// 别名// b::show as b_show;// }// 注:在父类和trait及子类中同时存在同一方法时 子类优先级最高 其次是trait,最后才是父类public function show(){return '欢迎学习php';}}
父类:
<?phpclass parent1{public $name;public $age;public function __construct($name = '',$age = ''){$this -> name = $name;$this -> age = $age;}public function show(){return "姓名:{$this -> name} 年龄:{$this -> age}";}}
子类:
<?php// extends为 继承父类或者扩展class wage extends parent1{// 引入并继承trait b类// 为防止trait重名可以取别名:// use b{// 别名// b::show as b_show;// }use b;public function __construct($name='',$age='',$wage=''){// parent调用父类中的方法和属性parent::__construct($name,$age);$this->wage =$wage;}// public function show(){// return parent::show(). " 工资: " .$this->wage;// }}
<?php// 类的自动加载器spl_autoload_register(function($className){// echo $className;require $className.'.php';});
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号