Correction status:qualified
Teacher's comments:总结的不错, 在项目中要灵活运用
1,匿名函数的使用
匿名函数是指没有定义函数名称的 函数, 通常是一次性使用,或是在固定条件下使用,不需要指定名称就是可以直接使用。
// 匿名函数的应用场景1 向变量赋值
// 以下是连接几个变量的信息 定义数据库连接信息 // 用剩余参数接收数组参数 $v = function (...$b) { // 初始化变量为空 $c = ""; foreach ($b as $va) { // 循环数组参数 $c .= $va; } return $c; }; // 固定顺序的数组变量 $a = ['mysql', ':host=', '127.0.0.1', ';dbname=', 'sysinfo']; // 向函数传递数组参数 echo ($v(...$a));
点击 "运行实例" 按钮查看在线实例
// 匿名函数的应用场景2 回调参数使用
// 做为回调参数使用,是在引用时使用,而不是在定义时使用
// 在调用函数中设计调用方式及参数指引,可以使用 call_user_func设计参数指引,或系统自动格式转换
// 设计返回方式
// 定义一个函数,将其中一个参数 $d 定义为一个函数 function sm($a, $c, $d) { // 声明$d为一个函数,参数为$a和$c call_user_func($d, $a, $c); return $d($a, $c); } // 做为参数的函数在调用时设计具体内容 echo sm(3, 5, function ($a, $b) { // 返回两个参数的连接值 return $b . $a; }); // 以上输出 53 echo '<br>';
点击 "运行实例" 按钮查看在线实例
//匿名函数的应用场景3 获取父元素变量 闭包的使用
//闭包使用父元素的变量做为参数, 自身的不再定义参数,
function dn(...$b) { $c = ':host='; $d = ';dbname='; // 做为闭包使用 使用use关键字,use内为要使用是父元素变量 return function () use ($c, $d, $b) { // 拼接字符串 return ($b[0] . $c . $b[1] . $d . $b[2]); }; } $a = ['mysql', '127.0.0.1', 'sysinfo']; echo dn(...$a)(); // 以上输出 mysql:host=127.0.0.1;dbname=sysinfo
点击 "运行实例" 按钮查看在线实例
2 命名空间
// 命名空间,定义作用域和引用路径
// 命名空间内的元素,只在当前空间内有效,外部引用时需要指定空间名称
// 通常一个文件一个空间,名称唯一
// 命名空间对自定义类,常量,函数可直接引用,对变量无法直接引用,
// 使用命名空间可以释放名称定义用语及定义引用路径
// 跨目录引用需要先引用目标空间的文件到当前文件中,再引用命名空间,
// 命名空间定义通常放在文件的第一行
namespace _09291; function sum($a, $b) { return $a + $b; } namespace _09292; function sum($a, $b) { return $a * $b; } namespace _09293; function sum($a, $b) { return $a / $b; } // 不同空间内的同名函数及相同参数计算结果不同,引用了不同的函数体 echo \_09291\sum(2,3); echo '<br>'; echo \_09292\sum(2,3); echo '<br>'; echo \_09293\sum(2,3);
点击 "运行实例" 按钮查看在线实例
3,类与对象
// class是类的定义符
// new 是类的实例化 定义符 , 类的一个实例就是类的一个对象;
// public是公共属性定义符
// -> 是对象 引用类中的成员 的 指向符
// 类内部的成员包括: 属性(变量)和 方法(函数)
namespace _092921; // class是类的定义符 class Cname { // public是公共属性定义符 // 类内部的成员包括: 属性(变量)和 方法(函数) // 以下为类的属性 属性可以赋值也可以不赋值,但不能是表达式及变量; // 动态变量可以方法中设计引用 public $name = 'cnnc'; public $country = 'china'; } // 创建类的实例化 定义符 new , 类的一个实例就是类的一个对象; $company = new Cname(); // 对象 引用类中的成员 用 属性指向符 -> echo "公司名称: " . $company->name . '<br>'; echo "所属国家: " . $company->country; // 显示结果是: // 公司名称: cnnc // 所属国家: china
点击 "运行实例" 按钮查看在线实例