首页 > 编程语言 >php8 新特性 match

php8 新特性 match

时间:2024-04-13 17:12:08浏览次数:27  
标签:false 特性 strpos php8 str return com match

 https://www.php.net/manual/en/control-structures.match.php

 

 

 

      $shape = ['type' => 'circle', 'radius' => '10'];

$res = match ($shape) {
['type' => 'circle', 'radius' => 10] => 'Circle with radius ' . $shape['radius'],
['type' => 'circle', 'radius' => '10'] => 'Circle with radius10 ' . $shape['radius'],
['type' => 'circle', 'radius' => 12] => 'Circle with radius ' . $shape['radius'],
default => 'Unknown shape',
};

dd($res); 

强类型匹配: 这里的10 是字符串 会匹配到第二个选项


左边可以有多个值,用,隔开 相当于 逻辑 or
$result = match ($x) {
// This match arm:
$a, $b, $c => 5,
// Is equivalent to these three match arms:
$a => 5,
$b => 5,
$c => 5,
};


和switch 一样 支持 default


$expressionResult = match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
default => baz(),
};


public static function getCount(){
return 113;
}

//来源判断
public function checkoutFrom($str)
{

$shape = 113;

$res = match($shape){
self::getCount() => self::getCount(),
'demo' => ' 3.',
default => 'Unknown shape',
};
dd($res);
}

// 113



比较
    //来源判断
public function checkoutFrom($str)
{

return match ($str) {
strpos($str, '[email protected]') !== false => 'digipart',
strpos($str,'[email protected]') !== false => 'netcomponents',
(strpos($str,'info') !== false && strpos($str,'hkinventory.com') !== false || strpos($str,'alert@hki') !== false) => 'hkinventory',
strpos($str,'[email protected]') !== false => 'icsource',
strpos($str,'[email protected]') !== false => 'octopart',
strpos($str,'[email protected]') !== false => 'efind ',
default => 'false',
};


// switch ($str) {
// case strpos($str, '[email protected]') !== false:
// return 'digipart';
// case strpos($str,'[email protected]') !== false:
// return 'netcomponents';
// case (strpos($str,'info') !== false && strpos($str,'hkinventory.com') !== false || strpos($str,'alert@hki') !== false):
// return 'hkinventory';
// case strpos($str,'[email protected]') !== false:
// return 'icsource';
// case strpos($str,'[email protected]') !== false:
// return 'octopart';
// case strpos($str,'[email protected]') !== false:
// return 'efind';
// default:
// return false;
// }

if(strpos($str, '[email protected]') !== false){
return 'digipart';
} else if(strpos($str,'[email protected]') !== false){
return 'netcomponents';
}else if(strpos($str,'info') !== false && strpos($str,'hkinventory.com') !== false || strpos($str,'alert@hki') !== false){
return 'hkinventory';
}else if(strpos($str,'[email protected]') !== false){
return 'icsource';
}else if(strpos($str,'[email protected]') !== false){
return 'octopart';
}else if(strpos($str,'[email protected]') !== false){
return 'efind';
}
return false;
}







标签:false,特性,strpos,php8,str,return,com,match
From: https://www.cnblogs.com/gooo/p/17858860.html

相关文章

  • PHP特性 web107-
    Web107parse_str函数将前字符串解析到后边,实现变量的覆盖if(isset($_POST['v1'])){    $v1 = $_POST['v1'];    $v3 = $_GET['v3'];       parse_str($v1,$v2);       if($v2['flag']==md5($v3)){           echo $flag;    ......
  • 暖风机/寻线仪防干扰/防静电LCD液晶段码屏驱动芯片VK1C21A/B/C/D/DA/E/EA具备显示效果
    概述:VK1C21A/B是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过3/4个通信脚配置显示参数和发送显示数据,也可通过指令进入省电模式。具备高抗干扰,显示效果好,静电耐压高等优良特性,可替代市面上大部分LCD驱动芯片。 特点:......
  • FastAPI: 测试lifespan特性(转)
    addbyzhj:实践出真知,文章写得真不错,自己测试这些条件原文:FastAPI:experimentlifespanfeatureInitInFastAPI,oneofwayscreatingasharedresourceandlivingaslongasapplicationisupisusing lifespan featureinFastAPI.Thislifespanfeaturecandoc......
  • LCD液晶超抗干扰段码显示屏驱动芯片VK1C21A/B/C/D/DA/E/EA具备显示效果好,静电耐压高等
    概述:VK1C21A/B是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过3/4个通信脚配置显示参数和发送显示数据,也可通过指令进入省电模式。具备高抗干扰,显示效果好,静电耐压高等优良特性,可替代市面上大部分LCD驱动芯片。 特点:......
  • Copy、Xcopy和Robocopy是Windows操作系统中用于文件和目录复制的命令行工具,它们在功能
    Copy、Xcopy和Robocopy是Windows操作系统中用于文件和目录复制的命令行工具,它们在功能和特性上有所不同:Copy:基本复制工具:Copy命令是Windows中最基本的文件复制工具之一,它允许将一个或多个文件从一个位置复制到另一个位置。简单操作:Copy命令适用于简单的文件复制操作,但它不提......
  • Elastic Search term, match, match_phrase 和 match_phrase_prefix 查询时的区别
    字段类型分keyword(不分词)和text(分词)字段值为"quickbrownfox",详细的createindex和insertdata语句在后边注意:keyword类型字段不分词,text类型字段keyword类型的字段值就是"quickbrownfox",不分词,必须当成一个整体text类型的字段值是"quickbrownfox",分词,可以当成......
  • Vue — Vue面试题:Vue3.0 特性
    CompositionAPI(组合式API):CompositionAPI允许开发者将逻辑按照功能或者相关性进行组织,而不是按照选项的不同部分(如data、methods、computed等)来分散代码。这种方式更灵活、更易于复用和维护,特别适用于编写大型复杂的组件。基于Proxy的响应式系统:Vue3中的响应式系统基于ES6......
  • 芯片pin IO电平特性
    1、IO电平特性逻辑电平是指一种可以产生信号的状态,通常由信号与地线之间的电位差来体现。逻辑电平的浮动范围由逻辑家族中不同器件的特性所决定逻辑电平术语输入高电平(Vih):保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平。输入低电......
  • Python计算两个质谱谱图的相似度——Matchms
    在做实验的时候需要在python环境下比较两个谱图的相似度,对于这个需求就遇到两个问题:如何导入谱图,让其在python环境中显示如何对比相似度,谱图之间的相似度与向量之间的相似度有何差别我调研了一些库可以用在python中去处理谱图,包括pyteomics、spectrum_utils还有今天要介绍的......
  • openGauss 2.1.0 闪回特性
    openGauss2.1.0闪回特性openGauss2.1.0于2021年9月30日发布,是openGauss的一个Preview版本,该版本生命周期仅为半年。该版本的新增功能如下:存储过程兼容性增强SQL引擎能力增强支持Ustore存储引擎支持段页式存储基于Paxos分布式一致性协议的高可用AI4DB和......