Blogger Information
Blog 28
fans 0
comment 0
visits 19648
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0929 匿名函数 闭包,命名空间及类与对象的定义与引用 20190929 2000-2200
没有人的夏天的博客
Original
628 people have browsed it

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

运行实例 »

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



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