批改状态:合格
老师批语:
<?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);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号