• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

use关键字在PHP中的几种用法

php 搞代码 4年前 (2022-02-28) 24次浏览 已收录 0个评论
文章目录[隐藏]

在学习了和应用了这么多年的PHP之后,您晓得use这个关键字在PHP中都有哪些用法吗?明天咱们就来看一下它的三种常见用法。

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

<code class="php">// 命名空间
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个性能力的引入

<code class="php">// 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. 匿名函数传参

<code class="php">// 匿名函数传参

$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()也是能够将变量传递过来的。而且这个仅限于在匿名函数中应用。

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202001/source/use%E5%85%B3%E9%94%AE%E5%AD%97%E5%9C%A8PHP%E4%B8%AD%E7%9A%84%E5%87%A0%E7%A7%8D%E7%94%A8%E6%B3%95.php

各自媒体平台均可搜寻【硬核项目经理】


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:use关键字在PHP中的几种用法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址