批改状态:合格
老师批语:
<?php// 函数// 函数的申明,int说明参数是要整数类的。如果需要Return的值有除了整数外的字符,// 需要在sum()这里加上‘:string'function sum(int $a, int $b){return $a + $b;}// 函数的调用echo sum(20, 50);// 如果需要参数太少,可在申明函数的时候,给参数一个默认值。如function sum($a, $b=null)// 如果参数过多,可以用'...$参数名'如:function sum(...$args)// 如果想引用函数内的值,可在申明函数的时候,在参数前加&function he(&$a){return $a += 10;}$a = 10;echo he($a);// 此时$a在全局中的值经过了函数作用,现在就是20。不在是之前申明的10echo $a . "\n";function fn1(){return ['name'=>'zhulaoshi','email'=>'zhulaoshi@php.cn'];}// 用解构语法// [$name, $email]= fn1();['name'=>$name,'email'=>$email]= fn1();echo "$name ( $email ) ";// 回调function add($a,$b,$c){return array_sum([$a, $b, $c]);}// 回调调用有两个 call_usrr_func_array 和 call_user_func,推荐使用call_user_func_array// 因为call_user_func能做的call_user_func_array都能做echo call_user_func_array('add', [10,20,30]);// 类与对象class test{// public是公开成员public string $name;// private 这是私有成员,只能类中访问,类外不可见private int $age;private int $gz;// __construct 是构造方法,在类实例中能自动调用。两个下滑杠的是魔术方法,用户不能调用,只能PHP调用public function __construct($name, $age,$gz){$this->name = $name;$this->age = $age;$this->gz = $gz;}// 属性重载, 拦截外部的非法属性访问// __get()获取器,当获取一个不存在或无权限访问的属性时触发public function __get($name){if($name === 'age')return $this->$name;}// __set必须有两个参数(属性名,新值)public function __set($name,$value){if ($name === 'gz')$this->$name += $value;}private function hello($a, $b, $c){return <<< DATA$this->name :工资($this->gz)年龄($this->age)DATA;}// 普通方法重载: __call()// 静态方法重载: __callStatic()// $name: 方法名称, $arguments: 参数数组public function __call($name, $arguments){if ($name === 'hello') {return <<< DATA$this->name :工资($this->gz)年龄($this->age)DATA;}if ($name === 'sum') {return array_sum($arguments);}}}$obj = new test('老师', 40,5000);echo $obj->age;echo $obj->gz = 2000;echo $obj->hello('a', 'b', 'c');
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号