批改状态:合格
老师批语:
//创建类class User{}
//类的实例化,即创建对象$mj = new User();
//类属性的访问修饰符,实现了类OOP的封装性public string $name;private int $salary;protected int $age;
// __construct(){}构造方法public function __construct($name,$salary,$age){//$this代表本对象(实例化的对象)$this->name = $name;$this->salary = $salary;$this->age = $age;}
/**类的自动加载器 */spl_autoload_register(function ($className) {// echo $className; //加载的类名称$classFile = __DIR__ . DS . 'class' . DS . $className . '.php';if (is_file($classFile) && file_exists($classFile)) require $classFile;});
// !当访问当前环境下未定义或不可访问的类属性时 ,重载方法__get会被调用。public function __get($name){return $this->data[$name];}// !当给当前环境下未定义或不可访问的类属性赋值时 ,重载方法__set会被调用。public function __set($name, $value){$this->data[$name] = $value;}
// !当访问当前环境下未定义或不可访问的类普通方法时 ,重载方法__call会被调用。public function __call($name, $args){if ($name == 'show') {return $this->data;}if ($name == 'sum') {// var_dump($args);return array_sum($args);}}
class Son extends Product{// 扩展属性public string $brand;// override 重写public function __construct($name, $price, $num, $brand){// parent:: 调用父类成员parent::__construct($name, $price, $num);$this->brand = $brand;}// 重写show方法public function show(){return <<<SHOW1. 品名:$this->name2. 价格:$this->price3. 数量:$this->num4. 品牌:$this->brandSHOW;}}
// 功能扩展public function total(){return "$this->name,数量为{$this->num},总计" . ($this->price * $this->num) . '元';}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号