最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • use关键字在PHP中的几种用法

    正文概述 转载于:掘金(硬核项目经理)   2021-03-06   629

    在学习了和使用了这么多年的php之后,您知道use这个关键字在PHP中都有哪些用法吗?今天我们就来看一下它的三种常见用法。

    1. 用于命名空间的别名引用

    // 命名空间
    include 'namespace/file1.php';
    
    use FILE1\objectA;
    use FILE1\objectA as objectB;
    
    echo FILE1\CONST_A, PHP_EOL; // 2
    
    $oA = new objectA();
    $oA->test(); // FILE1\ObjectA
    
    $oB = new objectB();
    $oB->test(); // FILE1\ObjectA
    

    这个想必在日常的工程化开发中会非常常见。毕竟现在的框架都是使用了命名空间的,不管做什么都离不开各种类依赖的调用,在各种控制器文件的上方都会有大量的use xxx\xxx\xxx;语句。

    2. 用于trait特性能力的引入

    // trait
    trait A{
        function testTrait(){
            echo 'This is Trait A!', PHP_EOL;
        }
    }
    
    class B {
        use A;
    }
    
    $b = new B();
    $b->testTrait();
    

    即使在最近这两年,依然还是见过完全没有用过trait的PHP程序员,不要惊讶,这是真实存在的。想想还有那么多项目都还在用TP3也就不奇怪了。trait特性还是非常方便的一种类功能扩展模式,其实我们可以看作是将这个use放在了类中就成为了trait的引用定义了。

    3. 匿名函数传参

    // 匿名函数传参
    
    $a = 1;
    $b = 2;
    // function test($fn) use ($a) // arse error: syntax error, unexpected 'use' (T_USE), expecting '{' 
    function test($fn)
    {
        global $b;
        echo 'test:', $a, '---', $b, PHP_EOL; // test:---2
        $fn(3);
    }
    
    test(function ($c) use ($a) {
        echo $a, '---', $b, '---', $c, PHP_EOL;
    });
    // 1------3
    

    这个就有点意思了吧,方法中要调用外部的变量是需要global的,在这里我们直接通过use()也是可以将变量传递过去的。而且这个仅限于在匿名函数中使用。

    测试代码: github.com/zhangyue050…


    起源地下载网 » use关键字在PHP中的几种用法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元