1. ホーム
  2. php

[解決済み] PHP 5.3 の ?: とは何ですか?重複] [重複

2023-05-23 16:20:32

質問

重複の可能性があります。 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 が返す expr1 もし expr1 と評価されます。 TRUE と評価され expr3 でなければ