当前位置: 首页 > news >正文

易语言可以做网站了吗团购平台有哪些

易语言可以做网站了吗,团购平台有哪些,做美食网站的目的和意义,qq网页游戏排行榜刚从 php7 升级到 php8 时 我在使用 switch 语句,结果出现了一个提示: "switch statement can be converted to match expression" 翻译过来就是: switch语句可以转换为match表达式 我当时在想,match 应该是php8 的…

刚从 php7 升级到 php8 时

我在使用 switch 语句,结果出现了一个提示:

"'switch' statement can be converted to 'match' expression"

翻译过来就是:

'switch'语句可以转换为'match'表达式

我当时在想,match 应该是php8 的新特性,之前有去搜索了解php8 相关的,因为没有实际使用,所以还是缺乏相关的知识。

所以今天就来说一下,php8 新特性:match

首先,我是在使用 switch 语句时,弹出可以使用 match,那么这两个是否有什么相关联的呢?

按照官方给的说明是:

match 表达式跟 switch 语句相似,但是有以下关键区别:

  • match 比较分支值,使用了严格比较 (===), 而 switch 语句使用了松散比较
  • match 表达式会返回一个值
  • match 的分支不会像 switch 语句一样, 落空时执行下个 case
  • match 表达式必须彻底列举所有情况

match 表达式结构

<?php
$return_value = match (subject_expression) {single_conditional_expression => return_expression,conditional_expression1, conditional_expression2 => return_expression,
};

match 的基础用法

<?php
$food = 'cake';$return_value = match ($food) {'apple' => 'This food is an apple','bar' => 'This food is a bar','cake' => 'This food is a cake',
};var_dump($return_value);

以上示例会输出:

string(19) "This food is a cake"

需要注意:

  • 不一定要使用 match 表达式的结果
  • match 表达式必须使用分号 ; 结尾

match 表达式和 switch 语句类似, 逐个检测匹配分支。一开始不会执行代码。 只有在所有之前的条件不匹配主体表达式时,才会执行剩下的条件表达式。 只会执行返回的表达式所对应的匹配条件表达式,例如:

<?php
$result = match ($x) {foo() => ...,$this->bar() => ..., // 如果 foo() === $x,不会执行 $this->bar()$this->baz => beep(), // 只有 $x === $this->baz 时才会执行 beep() // 等等
};

match 表达式分支可以通过逗号分隔,包含多个表达式。 这是一个逻辑 OR,当多个分支表达式右侧相同时,就可以用这种缩写

<?php
$result = match ($x) {// 匹配分支:$a, $b, $c => 5,// 等同于以下三个分支:$a => 5,$b => 5,$c => 5,
};

default 模式是个特殊的条件。 当之前的条件都不匹配时,会匹配到该模式。 例如:

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

注意:多个 default 模式将会触发 E_FATAL_ERROR 错误

match 表达式必须详尽列出所有情况。 如果主体表达式不能被任意分支条件处理, 会抛出 UnhandledMatchError

示例:

<?php
$condition = 5;try {match ($condition) {1, 2 => foo(),3, 4 => bar(),};
} catch (\UnhandledMatchError $e) {var_dump($e);
}

以上示例会输出:

object(UnhandledMatchError)#1 (7) {["message":protected]=>string(33) "Unhandled match value of type int"["string":"Error":private]=>string(0) ""["code":protected]=>int(0)["file":protected]=>string(9) "/in/ICgGK"["line":protected]=>int(6)["trace":"Error":private]=>array(0) {}["previous":"Error":private]=>NULL
}

使用 match 表达式处理非一致性检查

可以使用 match 表达式将 true 作为主项表达式来处理非一致性条件的情况

针对整数范围,使用宽泛的表达式匹配分支,示例:

<?php$age = 23;$result = match (true) {$age >= 65 => 'senior',$age >= 25 => 'adult',$age >= 18 => 'young adult',default => 'kid',
};var_dump($result);

会输出:

string(11) "young adult"

针对字符串内容,使用宽泛的表达式匹配分支,示例:

<?php$text = 'Bienvenue chez nous';$result = match (true) {str_contains($text, 'Welcome') || str_contains($text, 'Hello') => 'en',str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',// ...
};var_dump($result);

会输出:

string(2) "fr"

http://www.yayakq.cn/news/297026/

相关文章:

  • 门户网站改版建议重庆业务网站建设
  • 网站运营分析wordpress widget
  • 网站建设 华博互联建筑公司招聘岗位
  • 网站内容建设运维服务在 wordpress 本地安装 wordpress
  • 中型网站 收益五华建设银行网站
  • 拼多多网站建设国内产品设计公司前十名
  • 网站开发设计文案短视频素材免费
  • 临沂手机网站开发制作公司wordpress可以仿任何站
  • 中小企业建站实战从用户旅程角度做网站分析
  • 美食网站建设的时间进度表洛阳做网站排名
  • 门户网站与搜索引擎的区别徐州智能模板建站
  • vps网站搬家做一个网站需要多长时间
  • 遵义网站搭建公司哪家好网站备案幕布下载
  • 电子销售网站模板php开源cms排行
  • 蛋糕网站模板苏州哪个公司做网站好
  • 网站修改需要什么网站充值接口
  • 网页设计与网站建设书籍徐州seo排名收费
  • 北海涠洲岛旅游网站建设分析域名被墙查询
  • 免费网站推广ymdir抖音代运营商家谈判话术
  • 如何做一个好的网站宁波网络推广运营公司电话
  • 做好的网站启用济南网站制作报价
  • 淘宝客商城网站建设wp做图网站
  • 免费模板网站下载谷歌seo怎么做
  • 专业网站建设设计服务苏州网站建设培训
  • 做网站要招什么样的程序员小程序开发教程个人
  • 网站建设作品常宁城乡建设局网站查询
  • 如何提高wordpress后台的访问速度长春百度seo公司
  • 军队网站建设方案网站权重降低
  • 唐山网站建设拓温州网站设计服务
  • 只做动漫的h网站电商办公室