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点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号