您的当前位置:首页>全部文章>文章详情

【PHP】关于PHP8中match新语句的骚操作

CrazyPanda发表于:2024-01-06 22:27:56浏览:325次TAG:

PHP8新语法:match [更骚的匿名函数操作]

PHP8 新出的一个语法很好用,就是 match 语句。match 语句跟原来的 switch 类似,不过比 switch 更加的严格和方便

原来的 switch 语句代码如下:

function getStr( $strType ){
    switch( $strType ){
        case 1:
            $str = 'one';
            break;
        case 2:
            $str = 'two';
            break;
        default :
            $str = 'error';
    }
    return $str;
}
//当输入数值 1 和 字符 '1' 不会进行类型判断
echo getStr(1); //one
echo getStr('1'); //one
echo getStr(2); //two
echo getStr('2'); //two

换成 match 语句后:

function getStr( $strType ){
    return match( $strType ){
        1 => 'number one',
        '1' => 'string one',
        default => 'error',
    };
}
//可以看出输入数值 1 跟字符 `1` 返回的值是不同的
echo getStr(1); //number one
echo getStr('1'); //string one

骚操作

function getStr( $strType ){
    return match( $strType ){
        1 => (function(){
            return 'number one';
        })(),
        '1' => (function(){
            return 'string one';
        })(),
        default => 'error',
    };
}
//虽然这种代码风格也能行的通,但是总感觉哪里怪怪的
echo getStr(1); //number one
echo getStr('1'); //string one

总结:PHP8 新出的语法 match 相比原来的 switch 语法更加的方便和严格

猜你喜欢

【PHP】PHP8.1新特性大讲解之initializers初始化器
PHP 8.1:初始化器(new in initializers)PHP 8.1 添加了一个看似很小的细节,但我认为它会对许多人产生重大的日常影响。那么这个“初始化器 RFC 中的新内容”是关于什么的?我们来看一个例子;我们都写过这样的代码:class MyStateMachine {     public function __construct(       &n
发表于:2024-01-04 浏览:320 TAG:
【PHP】php中实现3DES算法(ECB加密模式PKCS5Padding填充)
讲道理,一提到3DES算法,首先想到的是要和java做交互了==现在3DES已经渐渐被抛弃了,尤其是ECB加密模式使用的更少了,但是没办法,业务需要,合作方用的是他,你头再铁也不能怎样,那就扒扒文档咯网上完整的php实现以经不多了,CBC加密模式居多,所以我参考了好几篇文章,整理了一个class出来,共享上来,避免后来人踩坑感谢前人的整理总结:PHP版3DES加解密类更新成PKCS5填充模式 (http://blog.163.com/hui\_san/blog/static/5710286720
发表于:2024-01-04 浏览:304 TAG:
【PHP】使用ThinkPHP6和Swoole实现的RPC服务与微服务架构整合
随着互联网技术的发展,提高系统的可扩展性和性能成为了一个重要的课题。为了满足这种需求,将RPC服务与微服务架构进行整合成为了一种较为常见的解决方案。本文将介绍如何使用ThinkPHP6和Swoole实现RPC服务与微服务架构的整合,同时提供具体的代码示例。一、RPC服务简介RPC(Remote Procedure Call,远程过程调用)是一种使调用者能够像调用本地函数一样调用远程函数的技术。它的原理是在客户端和服务端之间建立一个通信通道,在客户端发出调用请求后,服务端执行相应的逻辑并将结果返回
发表于:2024-07-29 浏览:311 TAG:
【PHP】PHP实现验证码的生成与验证
PHP是一种常用的服务器端脚本语言,不仅功能强大,而且易于学习和编写。在网站开发中,验证码的生成与验证是非常重要的安全措施。在这篇文章中,我们将介绍如何使用PHP实现验证码的生成与验证。一、什么是验证码?验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。它是一种常见的在线验证机制,用于确保用户是真正的人而不是机器人。
发表于:2023-12-28 浏览:286 TAG:
【PHP】PHP8.0 match函数
`match` 表达式是 PHP 8.0 引入的一个新的控制结构,它提供了一种简洁且更强大的方式来进行条件匹配。与 `switch` 语句相比,`match` 表达式具有以下优势:返回值:match 是一个表达式,它会返回一个值。严格比较:match 使用严格比较(===),而 switch 使用宽松比较(==)。单行语法:每个条件都必须在同一行内完成。默认值:可以使用 _ 作为默认匹配情况。基本语法$result = match ($value) { &
发表于:2024-08-07 浏览:264 TAG:
【PHP】php二进制转换函数
在进行某些数据处理时,我们可能需要将十进制数字转换成二进制或将二进制数字转换为十进制。在PHP中,我们可以通过一些内置函数来完成这些转换操作。一、十进制转二进制在PHP中,我们可以使用decbin()函数将十进制数字转换成二进制。例如,在下面的示例中,我们将十进制数字29转换成二进制数字:$decimal_number = 29; $binary_number = decbin($decimal_number); echo $binar
发表于:2023-12-29 浏览:280 TAG:
【PHP】PHP生成ICO图标的方法
本篇文章给大家介绍一下使用php生成ico图标的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。ico图标在每个网站中都需要用到的,使用方法也是很简单的,基本上以下面的方式为主,但也有其他的方式。<link rel="shortcut icon" href="/favicon.ico">一般将ico图标放置在网站的根目录下,使用时可以使用相对路径,也可以使用绝对路径来引入,这个没有明确的规定。
发表于:2024-01-30 浏览:306 TAG:
【PHP】中间人攻击是什么,会产生哪些危害,如何有效防止中间人攻击
简介中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种网络攻击,其原理是攻击者通过各种技术手段将受攻击者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中间人”。在攻击过程中,中间人可以截取、查看、篡改、伪造或修改受害者之间的通信数据,以达到窃取敏感信息、篡改数据或实施其他恶意行为的目的。举个简单的例子,假设A同学和B同学正在使用一个不安全的公共Wi-Fi网络进行通信,而攻击者恰恰潜伏在这个网络中。A同学想要向B同学发送一条私密信息,
发表于:2024-01-04 浏览:369 TAG:
【PHP】关于PHP8中match新语句的骚操作
PHP8新语法:match [更骚的匿名函数操作]PHP8 新出的一个语法很好用,就是 match 语句。match 语句跟原来的 switch 类似,不过比 switch 更加的严格和方便原来的 switch 语句代码如下:function getStr( $strType ){     switch( $strType ){       &nb
发表于:2024-01-06 浏览:326 TAG:
【PHP】TP5使用TaskScheduler来执行其他定时任务
在 ThinkPHP 5 中,你可以使用定时任务调度器(TaskScheduler)来执行其他定时任务。以下是一个示例代码,演示如何在一个定时任务中执行另一个定时任务:首先,你需要创建一个继承自 think\console\Command 的定时任务类,例如 TaskA:namespace app\command; use think\con
发表于:2023-12-02 浏览:1102 TAG: