博客列表 >参数,作用域,匿名函数

参数,作用域,匿名函数

我们的关系如此狭窄
我们的关系如此狭窄原创
2021年08月05日 19:54:57467浏览
<?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);


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议