ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5.3 の新機能: 凝縮された三項演算子と匿名関数?

PHP 5.3 の新機能: 凝縮された三項演算子と匿名関数?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-19 11:24:301073ブラウズ

What's New in PHP 5.3: the Condensed Ternary Operator and Anonymous Functions?

PHP 5.3 について ?: 演算子

PHP の 3 項条件演算子は、長い間この言語の定番であり、簡潔な if-then-else ステートメントを可能にします。 PHP 5.3 では、この演算子は、使用法をさらに合理化する新しい形式を獲得しました。

新しい省略表記 ?: Operator

以前は、三項演算子は次の形式をとっていました:

<code class="php">expr ? val_if_true : val_if_false</code>

ただし、PHP 5.3 では、中間の式を省略でき、次のようになります。

<code class="php">expr ?: val_if_false</code>

これは次と同等です:

<code class="php">expr ? expr : val_if_false</code>

使用例

検討次の例:

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

ここでは、条件 @$_GET['c'] が false と評価された場合に、?: 演算子を使用して $c 変数にデフォルト値を割り当てます。 @$_GET['c'] が設定されていないか無効な関数の場合、$c には「Woah!」と表示される匿名関数が割り当てられます。

PHP の匿名関数

匿名関数に関しては、確かに以前から PHP に存在していましたが、PHP 5.3 で新たな多用途性を獲得しました。クロージャとも呼ばれる匿名関数を使用すると、名前を付けずに関数をインラインで定義できます。

上記の例では、匿名関数は次のように定義されています。

<code class="php">function() { echo 'Woah!'; }</code>

他の名前付き関数と同様に、この場合は $c 変数を使用して呼び出されます。

以上がPHP 5.3 の新機能: 凝縮された三項演算子と匿名関数?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。