可能的重复: 什么是PHP经营者"?"和":"所谓的和他们做什么?

http://twitto.org/

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

Twitto使用了几个新的功能,可作为的PHP5.3:

  1. DIR
  2. 的?:操作员
  3. 匿名的功能

  1. 什么2号做的 ?: 在PHP5.3?

  2. 此外,他们是什么意思通过匿名的功能吗?不是那东西已经存在一段时间?

有帮助吗?

解决方案

?: 是一种形式的有条件的操作者,这是以前只为:

expr ? val_if_true : val_if_false

在5.3它可以离开了中间部分,例如 expr ?: val_if_false 这相当于:

expr ? expr : val_if_false

手册:

由于PHP5.3,能够离开了中间部分有条件的操作员。表达 expr1 ?: expr3 返回 expr1 如果 expr1 计算结果为 TRUE, , expr3 否则。

其他提示

?: 操是的 有条件的操作者 (经常称为的三operator):

表达 (expr1) ? (expr2) : (expr3) 计算结果为 expr2 如果 expr1 计算结果为 真的, , expr3 如果 expr1 计算结果为 .

在下述情况下:

expr1 ?: expr2

表达评估的价值的 expr1 如果 expr1真的expr2 否则:

由于PHP5.3,能够离开了中间部分的三操作员。表达 expr1 ?: expr3 返回 expr1 如果 expr1 计算结果为 真的, , expr3 否则。

看看这里:

由于PHP5.3,能够离开了中间部分的三操作员。表达expr1?:expr3返回expr1如果expr1的计算结果为真正的和expr3。

匿名的功能: 不,他们不存在 前5.3.0 (见第一注意下面的例子),至少以这种方式:

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

唯一的方法是 create_function(), ,这是速度较慢,相当繁琐且容易出错(因为使用的字符串功能的定义)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top