从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中提供的几个新功能:
2 在PHP 5.3中与 ?: 有什么关系?
另外,匿名功能是什么意思?那不是已经存在了一段时间了吗?
?: 是条件运算符的一种形式,以前只能用于:
?:
expr ? val_if_true : val_if_false
在5.3中,可以省略中间部分,例如expr ?: val_if_false,它等效于:
expr ?: val_if_false
expr ? expr : val_if_false
从手册:
从PHP 5.3开始,可以省略条件运算符的中间部分。如果计算结果为,则表达式expr1 ?: expr3返回,否则返回。expr1``expr1``TRUE``expr3
expr1 ?: expr3
expr1``expr1``TRUE``expr3