Blogger Information
Blog 21
fans 0
comment 0
visits 23944
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
匿名函数,命名空间,类的认识--------2019.09.29
刂艹亻的博客
Original
728 people have browsed it

匿名函数,命名空间,类的认识

实例代码

实例--匿名函数

<?php

//匿名函数与闭包
//php不区分匿名函数与闭包

//匿名函数,本质就是函数表达式
//应用场景-1:匿名函数作为值来使用
$sum = function ($a,$b){
    return $a+$b;
};
echo $sum(25,25);//50
echo'<hr>';


//匿名函数用在什么地方
//应用场景-2:作为回调参数来使用
//回调:回头调用---某一步先决条件执行后再执行的操作
$numberPlusOne = array_map(function($number) {
    return $number + 1;
}, [1, 2, 3]);
    //数组单元+1
print_r($numberPlusOne);//Array ( [0] => 2 [1] => 3 [2] => 4 )
echo'<hr>';
    //自定义排序
$arr = [9,6,3,8,5,2,7,4,1];
usort($arr,function($a,$b){
    return $a-$b;
});
print_r($arr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
echo'<hr>';

//作用三-3:获取父级作用域里的变量
    //匿名函数引用父级元素的的值
$name = 'xiong';
$fl = function()use($name){
    return $name;
};
echo $fl();
echo'<hr>';
// 案例
// 父级函数
function demo(){
    $name ='zhi';
     return function()use($name){
        return $name;
     };
}
echo demo()();//zhi
//函数的声明: function func_name() {}
//函数的调用: func_name();
//
//参数: 必选参数,可选参数/默认参数, 剩余参数
//
//匿名函数
//1. 值
//2. 回调
//3. 闭包

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例---命名空间及类的认识

<?php

// 命名空间
namespace _9029_1;
include __DIR__.'/inc/function.php';

function sum($a,$b){
    return $a +$b;
}

//不带命名空间
echo sum(20,30);//50  执行的是当前命名空间下的sum(加法)函数

echo'<hr>';

//带了关键字namespace时执行的也是加法sum,代表namespace==\_9029_1  也就是当前的命名空间
echo namespace\sum(20,30);//50 执行的是加法运算
echo'<hr>';
echo \_9029_1\sum(30,30);//60 执行的是加法运算
echo'<hr>';
//引入其它空间的sum函数
echo \_0929_f\sum(30,15);//450  sum执行的乘积运算
echo'<hr>';
// 命名空间---类似一栋楼里面可以有好多楼层。而每个楼层又可以有许多房间 
//例如一单元5楼501,502,503等等,你要去找 一单元503,只能先去找到一单元,然后去找5楼,最后找到503
namespace _1_501;
// 类的声明:关键字 class
class D501
{
    // 一单元可以有501
    public $name = '一单元501';
}

namespace _2_501;
class D501
{
    // 二单元也可以有501
    public $name = '二单元501';
}

namespace _3_501;
class D501 
{
    // 三单元也可以有501
    public $name = '三单元501';
}

// 此时这个实例话在_3_501的命名空间下。所以只输出了该空间下的那么属性
// 通过new关键字来实例化类,成为对象,然后用对象去访问类的属性
$obj = new D501();
echo '我要去->'.$obj->name.'<br>';//我要去->三单元501

// 此时引入命名空间.。通过不同的命名空间,去实例化名称相同的类,不会有冲突
$obj =  new \_1_501\D501();
echo '我要去->'.$obj->name.'<br>';//我要去->一单元501

$obj = new \_2_501\D501();
echo '我要去->'.$obj->name.'<br>';//我要去->二单元501

//命名空间的作用
//1,用来区分名称相同的类,方法,变量或其它;
//2.起到了保护作用,在不同空间的数据,不会互相干扰

// 类通过关键字 class 来声明,首字母一般大写 ,里面可以有属性,方法等等
//一般情况下。想要访问类中的属性或方法,要先实例话类的对象,然后用对象利用->符号来访问相应的成员;

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

匿名函数,本质就是函数表达式

    1,可以赋值到变量上,按值调用,但要注意,此时它的类型是对象

    2,可以当成回调函数来执行

    3.可以做为闭包使用

命名空间的作用
1,用来区分名称相同的类,方法,变量或其它;
2.起到了保护作用,在不同空间的数据,不会互相干扰

类通过关键字 class 来声明,首字母一般大写 ,里面可以有属性,方法等等
一般情况下。想要访问类中的属性或方法,要先实例话类的对象,然后用对象利用->符号来访问相应的成员;

Correction status:qualified

Teacher's comments:命名空间, 就是电话区号, 并无特别之处
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post