php - 什么是 ? : in PHP 5. 3?

标签 php php-5.3 ternary-operator conditional-operator language-construct

Possible Duplicate: What are the PHP operators “?” and “:” called and what do they do?

来自 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. 在 PHP 5.3 中,数字 2 对 ?: 有什么作用?

  2. 另外,匿名函数是什么意思?那不是早就存在了吗?

最佳答案

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

expr ? val_if_true : val_if_false

在 5.3 中可以省略中间部分,例如expr ?: val_if_false 相当于:

expr ? expr : val_if_false

来自manual :

Since PHP 5.3, it is possible to leave out the middle part of the conditional operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

关于php - 什么是 ? : in PHP 5. 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153180/

相关文章:

php - 用于 PHP 的 Facebook SDK 错误 - CurlException : 35: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

php - 错误对象和数组

javascript - 三元运算符返回 "true : false"。为什么?

c++ - clang 和 gcc 之间对三元运算符的 const 引用地址的差异

python - 使用三元运算符进行方法调用的伦理和可读性

PHP - 尝试使用 error_log() 记录会导致 500 错误

php - 如何在 PHP 的惯用 SQL 查询中使用 OR?

php - 如何格式化带有前导零和千位逗号的数字?

php - 获取经过身份验证的用户 onAuthenticationSuccess

sql-server-2000 - 如何从 PHP 5.3 及更高版本连接到 MSSQL 2000