首页 > 后端开发 > php教程 > PHP 5.3 中的新增功能:压缩三元运算符和匿名函数?

PHP 5.3 中的新增功能:压缩三元运算符和匿名函数?

Mary-Kate Olsen
发布: 2024-10-19 11:24:30
原创
1061 人浏览过

What's New in PHP 5.3: the Condensed Ternary Operator and Anonymous Functions?

理解 PHP 5.3 ?: 运算符

PHP 中的三元条件运算符长期以来一直是该语言的主要内容,它允许简洁的 if-then-else 语句。在 PHP 5.3 中,该运算符获得了新的形式,进一步简化了其用法。

新的速记 ?: 运算符

之前,三元运算符采用以下形式:

<code class="php">expr ? val_if_true : val_if_false</code>
登录后复制

但是,在 PHP 5.3 中,中间的表达式可以省略,结果是:

<code class="php">expr ?: val_if_false</code>
登录后复制

这相当于:

<code class="php">expr ? expr : val_if_false</code>
登录后复制

使用示例

考虑以下示例:

<code class="php">require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
    throw new Exception('Error');
$c();</code>
登录后复制

此处,如果条件 @$_GET['c'] 计算结果为 false,则使用 ?: 运算符为 $c 变量分配默认值。如果 @$_GET['c'] 未设置或者是无效函数,$c 将被分配显示“Woah!”的匿名函数。

PHP 中的匿名函数

至于匿名函数,它们确实在 PHP 中存在了一段时间,但它们在 PHP 5.3 中获得了新的多功能性。匿名函数,也称为闭包,允许您内联定义函数而无需给它们命名。

在上面的示例中,匿名函数定义为:

<code class="php">function() { echo 'Woah!'; }</code>
登录后复制

它可以是像任何其他命名函数一样调用,在本例中使用 $c 变量。

以上是PHP 5.3 中的新增功能:压缩三元运算符和匿名函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板