<?php /* * 1. 总结函数的返回值,参数? * 2. 实例演绎你对课上匿名函数以及变量作用域问题的理解? * */ function _return($str = 0){ if(!$str){ // return true; // return 123; // return array('1',2,'name'); $obj = (object)([1,2,3]); return $obj; } } //方法约定返回值的时候只能单个值,可以是字符串,数字等类型数据, //当要求返回的数据较多,可以将其加入一个数组或者对象。 $res = _return(); var_dump($res); //参数 传入一个参数或者变量,让其按照方法的逻辑进行某些操作,然后根据参数不同所处理出来的结果 function more_(...$arr){ var_dump($arr); } echo "<br>"; more_(1,2,3,'name'); //剩余参数 当传入参数过多,无法确定数量,剩余参数创造一个数组容器,容纳传入的参数 echo "<br>"; $arr_ = [1,2,3,'123']; more_(...$arr_); //感觉就像析构一样 [$a,$b,$c,$d] = $arr_; echo "<br>"; echo $a; // 返回$arr_[0] 也就是1 //剩余参数展开 将$arr_ 数组一个个展开 导入more_中 $arr收集 class A{ const name = 'ych'; public function int(){ echo "初始化<br>"; } public function pr(){ echo "<pre>"; print_r($arr_); } } //classA 里面的常量name 外面无法调用 只能实例化A 用A去调用 方法int也是 //也就是类里面的东西只是作用于里面 外面想要调用 必须实例化A 做为A本身可以调用 //同样 A类里面 pr方法在调用$arr_ 时会报错 找不到$arr_ //以上都是作用域的相关影响 //如果A类 pr方法想用到外部的数组$arr_ 可以将A类实例化 将数组以参数的形式在调用的时候传参过去 //另一种 就是声明$arr_为全局数组 语法: global 目标函数,或者数组 ; 或者直接调用$global //匿名函数 function one($b){ return function ($v) use ($b){ return $v*$b; }; } echo "<br>"; echo one(3)(8); //计算购物车总价 //$total=0; //$cars = [ // ['egg',1,2], // ['apple',4,3], // ['pen',1,12] //]; //$callback_ = function($name,$num,$price) use ($cars,&$total){ // $total += $num*$price; //}; //array_walk($cars,$callback_); //echo "<br>"; //var_dump($total);