欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

匿名函数、命名空间以及类的认知---2019-0929

程序员文章站 2022-03-11 13:41:34
...
  1. 自写案例演示匿名函数的三个应用场景

    实例

    <?php
    // ***匿名函数只能调用一次
    
    // 匿名函数的应用场景
    // 1、将匿名函数作为一个值赋给另一个变量
    $sum = function($a,$b){
        return $a*$b;
    };
    // 按值调用
    echo $sum(3,5);
    echo '<hr>';
    
    // 2、将匿名函数作为另一个函数的变量进行调用(回调)
    $arry = [1,53,6,7,8];
    usort($arry,function($a,$b){
        return $a-$b;
    });
    echo '<pre>' . print_r($arry,true);
    echo '<hr>';
    
    // 3、获取父作用域中的变量(eg.在子函数中调用父函数中变量)
    function task(){
        $email = 'Reid@php.cn';
        return function()use($email){
            return $email;
        };
    }
    
    echo task()();
    ?>

    运行实例 »

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

    运行结果:

    匿名函数、命名空间以及类的认知---2019-0929

  2.  深刻理解全名空间的意义,并实例演示多个命名空间的场景

    实例

    <?php
    namespace _0929task2
    {
        function func($a,$b){
            return  $a*$b; 
    }
    }
        
    
    
    namespace _0929test
    {
        function func($a,$b){
            return   $a + $b;
        }
    }
    
    namespace{
        // include __DIR__ . '../tset.php';
        echo _0929test\func(3,4);
        // echo '<hr>';
        // echo \_0929\func(4,5);
        echo '<hr>';
        echo _0929task2\func(2,5);
    }

    运行实例 »

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

    运行结果:

    匿名函数、命名空间以及类的认知---2019-0929

  3. 实例演示类与对象的关系与使用方式

    实例

    <?php
    
    namespace _0929task3;
    class db{
        public $dsn='mysql:host:127.0.0.1;dbname:video';
        public $user='root';
        public $pwd='root';
    
        public function connection(){
            // ...
        }
    }
    
    $db=new db();
    echo $db->dsn.'<br>';
    echo $db->user.'<br>';
    echo $db->pwd.'<br>';

    运行实例 »

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

    匿名函数、命名空间以及类的认知---2019-0929

    类与对象之间的关系:类是对象的抽象模板,类中的属性和方法需要通过创建对象实例来访问。

  4. 总结命名空间的应用对象, 适用场景以及注意事项

    命名控制的主要目的是为了减少在项目中命名的重复和名称的长度,应用对象主要包括:函数、常量、类和接口四种。

    注意事项:在同一个脚本文件中尽量只有一个命名空间,如需多个可以外部引用;命名空间和全局空间同时使用时需

    要讲命名空间的内容用花括号包起来,用namespace关键字来声明一个匿名空间(即全局空间),namespace关键字

    既能用来声明命名空间也能表示当前命名空间。