可能性のある複製:PHP演算子「?」および「:」とは何ですか?彼らはそうですか?
<?PHP
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
$c();
?>
Twittoは、PHP 5.3:
番号2はで何をしますか?:in PHP 5.3?
また、匿名関数とはどういう意味ですか?それはしばらく存在していたものではなかったのですか?
PHP 5.3であるため、三項演算子の中央部分を省略することができます。式expr1?:expr3は、expr1がTRUEと評価された場合はexpr1を返し、それ以外の場合はexpr3を返します。
匿名関数:いいえ、それらは存在しませんでした 5.3.0以前 (例の下の最初の注意を参照)、少なくともこの方法で:
_function ($arg) { /* func body */ }
_
唯一の方法はcreate_function()
でした。これは遅く、非常に面倒で、エラーが発生しやすくなります(関数定義に文字列を使用するため)。