批改状态:合格
老师批语:
<?php//作业内容:// 1. 实例演示函数的相关知识点// 2. 实例演示课堂上提及全部类与对象的关键字,重点放在属性与方法的重载上//申明函数 PHP7.1以后,类型约定function hello(int $a, int $b) : int// :int 返回值必须是数值 没有return写:void待定{// 获取传递的参数func_get_args();print_r(func_get_args());return "$a + $b";}//函数调用echo hello(22,2)."\n";class Person{// 属性private string $act;// 私有属性private int $age;private string $name;private int $salary;// 构造方法,实例初始化自动调用public function __construct($act,$age,$name,$salary){$this->act = $act;$this->age = $age;$this->name = $name;$this->salary=$salary;}// 属性重载, 拦截外部的非法属性访问// __get()获取器,当获取一个不存在或【无权限访问】的属性时触发public function __get($propertyName){$result = 0;if ($propertyName === 'age'){$result = $this->age +5;}elseif ($propertyName === 'salary' ){$result = $this->salary+2000;}elseif ($propertyName === 'name'){$result = $this->name.'--->名儿';}elseif ($propertyName === 'act'){$result = $this->act;}return $result;}// __set(value): 属性设置器(写)// __set(属性名,新值)public function __set($name,$value){$this->$name = $value;}private function message($a,$b,$c){return <<<DATA"$this->name,年龄:$this->age 技能:$this->act,工资:$this->salary"DATA;}// 普通方法重载: __call()public function __call($name,$arguments) // $name: 方法名称, $arguments: 参数数组{// return $name.','.join(',',$arguments);if ($name === 'ok'){echo '此方法不存在,啥也不做!';}elseif ($name === 'message'){return <<<DATA"$this->name,年龄:$this->age 技能:$this->act,工资:$this->salary"DATA;}}}$xiaoming = new Person('一指禅','18','王敏',3500);echo '姓名:'. $xiaoming->name.PHP_EOL;echo '年龄:'.$xiaoming->age.PHP_EOL;echo '工资+2千:' .$xiaoming->salary.PHP_EOL;echo'--------------'.PHP_EOL;// set设置属性$xiaoming->act = '降龙十八掌'.PHP_EOL;echo $xiaoming->act.PHP_EOL;echo $xiaoming->message(1,3,5).PHP_EOL;echo $xiaoming->ok(); // 没有这个方法/*** class: 声明类* new: 类的实例化* public: 访问限制符(公开成员/默认值)* private: 访问限制符(私有成员,仅在类中访问,类外不可见)* __construct(): 构造方法(实例化时调用,用于初始化类实例)* $this: 当前类实例的引用,只能用在类中* __get($name): 属性重载,拦截非法属性"读"访问* __set($name,$value): 属性重载,拦截非法属性"写"访问* __call($name,$arguments): 方法重载,拦截非法的方法访问*/

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号