什么是?:在PHP 5.3中?[重复]

2020/10/13 23:01 · php ·  · 0评论

可能重复:
什么是PHP运算符“?” 和“:”被调用,它们做什么?

http://twitto.org/

<?PHP
    require __DIR__.'/c.php';
    if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
        throw new Exception('Error');
    $c();
?>

Twitto使用PHP 5.3中提供的几个新功能:

  1. DIR不变
  2. 运营商
  3. 匿名功能

  1. 2号与PHP 5.3中?:有什么关系?

  2. 另外,匿名功能是什么意思?那不是已经存在了一段时间了吗?

?: 是条件运算符的一种形式,以前只能用于:

expr ? val_if_true : val_if_false

在5.3中,可以省略中间部分,例如expr ?: val_if_false,它等效于:

expr ? expr : val_if_false

手册

从PHP 5.3开始,可以省略条件运算符的中间部分。如果计算结果为表达式expr1 ?: expr3返回否则返回expr1expr1TRUEexpr3

?:操作员是有条件的操作者(通常refered为三元运算符):

该表达式的(expr1) ? (expr2) : (expr3)计算结果为expr2if的expr1评估结果为TRUEexpr3if的expr1评估结果为FALSE

如果是:

expr1 ?: expr2

表达式的计算结果为expr1if的expr1值为trueexpr2否则为:

从PHP 5.3开始,可以省略三元运算符的中间部分。如果计算结果为TRUE表达式expr1 ?: expr3返回否则返回expr1expr1expr3

看这里:

从PHP 5.3开始,可以省略三元运算符的中间部分。如果expr1的计算结果为TRUE,则表达式expr1?:expr3返回expr1,否则返回expr3。

匿名函数:不,它们在5.3.0之前不存在(请参见示例下方的第一条注释),至少以这种方式:

function ($arg) { /* func body */ }

唯一的方法是create_function(),它比较慢,相当麻烦并且容易出错(因为使用字符串定义函数)。

本文地址:http://php.askforanswer.com/shenmeshizaiphp-5-3zhongzhongfu.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!