PHP 5.3 中的新增功能:壓縮三元運算子和匿名函數?

Mary-Kate Olsen
發布: 2024-10-19 11:24:30
原創
933 人瀏覽過

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

理解PHP 5.3 ?: 運算子

PHP 中的三元條件運算子長期以來一直是該語言的主要內容,它允許簡潔的if-then -else 語句。在 PHP 5.3 中,該運算子獲得了新的形式,進一步簡化了其用法。

新的速記?: 運算子

之前,三元運算子採用以下形式:

<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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!