国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁(yè) > 技術(shù) > IOS開發(fā)

淺談PHP7中的一些小技巧

IOS開發(fā) 2023-02-16 22:19:01
目錄
  • 相同的命名空間,相同的 use
  • 常量可以是數(shù)組
  • 太空船操作符
  • 數(shù)組的第一 / 最后一個(gè)鍵 (PHP 7.3)
  • 數(shù)組延展操作符 (PHP 7.4)
  • 箭頭函數(shù) (PHP 7.4)
  • 常量的可見(jiàn)性 (PHP7.1)
  • Constant visibility (PHP7.1)
  • 結(jié)語(yǔ)

相同的命名空間,相同的 use

在 PHP 7 之前,開發(fā)者經(jīng)常這么做:

use UniverseSaiyan;
use UniverseSuperSaiyan;

從 PHP 7 開始:

use Universe{Saiyan, SuperSaiyan};

函數(shù)和常量也是一樣的。如果它們屬于同一命名空間,則可以對(duì)它們進(jìn)行分組。

常量可以是數(shù)組

define('NAMES', [
    'first'  => 'John',
    'middle' => 'Fitzgerald',
    'last'   => 'Kennedy'
]);
 
echo NAMES['last']; //顯示 "Kennedy"

太空船操作符

它的寫法是這樣的<=>。它結(jié)合了比較。它表示 “小于,等于或大于”。當(dāng)使用用戶定義的比價(jià)函數(shù)對(duì)數(shù)組進(jìn)行排序時(shí),它非常有用,因?yàn)榉祷刂凳牵?/p>

  • 0 如果值相等
  • 1 如果左邊的值更大
  • -1 如果右邊的值更大

那么,讓我們對(duì)以下女演員進(jìn)行排序:

$actressesWithAcademyAwards = [
    [ 'name' => 'Katharine Hepburn', 'awards' => 4 ],
    [ 'name' => 'Jessica Lange', 'awards' => 2 ],
    [ 'name' => 'Meryl Streep', 'awards' => 3 ],
    [ 'name' => 'Cate Blanchett', 'awards' => 2 ],
];

你可以用一行來(lái)代替多行來(lái)進(jìn)行比較:

usort($actressesWithAcademyAwards, function ($a, $b) {
    return $a['awards'] <=> $b['awards'];
});
 
print_r($actressesWithAcademyAwards);

返回:

Array

(

    [0] => Array

        (

            [name] => Jessica Lange

            [awards] => 2

        )

    [1] => Array

        (

            [name] => Cate Blanchett

            [awards] => 2

        )

    [2] => Array

        (

            [name] => Meryl Streep

            [awards] => 3

        )

    [3] => Array

        (

            [name] => Katharine Hepburn

            [awards] => 4

        )

)

這是一個(gè)非常常見(jiàn)的 PHP 用例,因此太空船操作符可以節(jié)省時(shí)間。另外,它的可讀性更強(qiáng)。

數(shù)組的第一 / 最后一個(gè)鍵 (PHP 7.3)

從 PHP 7.3 開始,你可以很容易地得到數(shù)組的第一個(gè)鍵和最后一個(gè)鍵:

$array = [ 'v' => 1, 'i' => 2, 'p' => 3 ];
 
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
 
print_r($firstKey); // v
print_r($lastKey); // p

真的很簡(jiǎn)單,因?yàn)樗挥绊憙?nèi)部數(shù)組指針。

數(shù)組延展操作符 (PHP 7.4)

該特性可以實(shí)現(xiàn)以下功能:

$abc = range('a', 'c');
$def = range('d', 'f');
$ghi = range('g', 'i');
$all = [...$abc, ...$def, ...$ghi, 'j'];
print_r($all);

得到:

Array

(

    [0] => a

    [1] => b

    [2] => c

    [3] => d

    [4] => e

    [5] => f

    [6] => g

    [7] => h

    [8] => i

    [9] => j

)

在大多數(shù)情況下,它基本取代了array_merge().

在大多數(shù)情況下,它基本取代了array_merge().

箭頭函數(shù) (PHP 7.4)

請(qǐng)注意,因?yàn)楝F(xiàn)在它指的是只有一個(gè)表達(dá)式的短閉包(因此有了 “短” 這個(gè)字):

$c = 3;
$addC = fn($x) => $x + $c;
echo $addC(70); // 73

不需要use關(guān)鍵字。

常量的可見(jiàn)性 (PHP7.1)

class Mother {
    private const ERROR_LEVEL_1 = 'achtung';
}

可見(jiàn)性有助于確保不應(yīng)該被覆蓋的內(nèi)容不會(huì)被覆蓋。在 PHP 7.1 之前,對(duì)于類常量(始終是公共的)來(lái)說(shuō)是不可能的。

Constant visibility (PHP7.1)

class Mother {
    private const ERROR_LEVEL_1 = 'achtung';
}

可見(jiàn)性有助于確保不應(yīng)被覆蓋的內(nèi)容不被覆蓋。在PHP 7.1之前,對(duì)于類常量(始終是公共的)這是不可能的。

結(jié)語(yǔ)

PHP 7 是強(qiáng)大的。它速度更快,功能更強(qiáng)大。你知道 PHP 7 可以完成這些事嗎?

以上就是淺談PHP7中的一些小技巧的詳細(xì)內(nèi)容,更多關(guān)于PHP7中的一些小技巧的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號(hào):國(guó)作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來(lái)源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請(qǐng)注明來(lái)源,商業(yè)媒體及紙媒請(qǐng)先聯(lián)系:aishangyiwan@126.com

工信部備案號(hào):湘ICP備19012813號(hào)-5