午夜福利院在线观看免费,天堂最新版在线,色噜噜精品一区二区三区,无码一区二区三区中文字幕,丝袜美腿一区二区三区

首頁>文檔>技術(shù)文檔>PHP7好用的小技巧

此組別內(nèi)的文章

需要支持?

如果通過文檔沒辦法解決您的問題,請?zhí)峤还潍@取我們的支持!

PHP7好用的小技巧

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

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

use Universe\Saiyan;
use Universe\SuperSaiyan;

????從 PHP 7 開始:

use Universe\{Saiyan, SuperSaiyan};

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

????常量可以是數(shù)組

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

????太空船操作符

????它的寫法是這樣的<=>。它結(jié)合了比較。它表示 “小于,等于或大于”。當使用用戶定義的比價函數(shù)對數(shù)組進行排序時,它非常有用,因為返回值是:

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

????那么,讓我們對以下女演員進行排序:

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

????你可以用一行來代替多行來進行比較:

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

? ? ? ? )

)

????這是一個非常常見的 PHP 用例,因此太空船操作符可以節(jié)省時間。另外,它的可讀性更強。

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

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

$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

????真的很簡單,因為它不影響內(nèi)部數(shù)組指針。

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

????該特性可以實現(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)

????請注意,因為現(xiàn)在它指的是只有一個表達式的短閉包(因此有了 “短” 這個字):

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

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

????常量的可見性 (PHP7.1)

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

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

????Constant visibility (PHP7.1)

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

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

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
QQ客服
  • QQ176363189 點擊這里給我發(fā)消息
旺旺客服
  • 速度網(wǎng)絡(luò)服務(wù)商 點這里給我發(fā)消息
電子郵箱
  • sudu@yunjiasu.cc
微信客服
  • suduwangluo