博客列表 >匿名函数,命名空间类与对象的理解-0929作业

匿名函数,命名空间类与对象的理解-0929作业

零度 的博客
零度 的博客原创
2019年10月03日 11:40:24660浏览

匿名函数三个场景代码演示

实例

<?php

// 匿名函数, 函数表达式
// 场景1: 匿名函数可以用变量赋值形式来使用
$sum = function ($a, $b) {
    return $a.$b;
};//记得这里必须加``;``分号,不加分号php会报错,闭包函数
// $sum传两个值到函数中因为函数中有两个局部变量
echo $sum('我是', '匿名函数1');
echo '<hr>';




// 2. 做为回调参数来使用
// array_map(), preg_replace_callback()方法都会用到回调函数,这是使用闭包的最佳时机!
$num=array_map(function ($number){
    return $number+1;
},[1,2,3]);
print_r($num);//输出Array ( [0] => 2 [1] => 3 [2] => 4 )

// 3. 获取父作用域中的变量两种用法
//一:
$a = '我是匿名函数场景3';//在匿名函数外的变量叫父作用域变量
$aa = function () use ($a) {
    return $a;
};
echo $aa();
echo '<hr>';
//二:
// a 是父函数
function a() {
    // $a在匿名函数外它是匿名函数的父域中的变量
    $a = '我是匿名函数场景3'; 
    return function () use ($a){
        return $a;
    };//记得这里必须加``;``分号,不加分号php会报错,闭包函数
}
echo a()();

运行实例 »

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

二:命名空间场景演示

几个场景都写在一起了


实例

<?php
namespace demo1;//这个一定要写在第一行 不然用的时候会出错,吸取了教训了!!!。
include __DIR__ .'/demo2.php';
//以下是同目录不同文件的demo2.php里面的代码
// namespace demo2;//命名空间不能用纯数字命名
// function a ($a){
// return $a;
// }
include __DIR__ .'../fc/demo3.php';
//以下是/fc/demo3.php里面的代码
// namespace demo3;//命名空间不能用纯数字命名
// function a ($a){
// return $a;
// }

//命名空间不能用纯数字命名

function a ($a){
return $a;
}
// 本文件的命名空间访问
echo a('命名空间1');// 不写命名空间标识符也可以默认是这样的:echo namespace\a('命名空间'); 
echo'<hr>';
// 同级目录的命名空间访问
echo \demo2\a('命名空间2');//demo2是同目录下的demo2.php文件里的空间命名
echo'<hr>';
// 其它目录的命名空间访问
echo \demo3\a('命名空间3');//demo3是fc目录下的demo3.php文件里的空间命名


?>

运行实例 »

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


三:类与对象

实例

<?php
class cs{
public $ceshi='类与对象简单理解';//public为可见性,全局可见 $ceshi是类属性
}
$a=new cs();//类new出来得到一个对象a
echo $a->ceshi;//访问对象a里面的属性ceshi
?>

运行实例 »

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

四:总结

  1. 空间命名的标识符一定要写在第一行,不然会报错,吸取了教训了。

  2. 命名空间不能用纯数字命名

  3. 命名空间的作用可以防止类,函数,全局变量的重名。

  4. 匿名函数的回调有点绕脑子,写出来的结果跟脑子第一次想的不一样,理解就是还可以放到函数中使用


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