<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PHP8 已經(jīng)發(fā)布,來(lái)看看有哪些新特性吧

          共 1609字,需瀏覽 4分鐘

           ·

          2020-12-03 17:36

          5be0560199b1930959f33a4e3e77699d.webp

          PHP8 在經(jīng)過(guò)6個(gè)月的核心開發(fā)和內(nèi)測(cè)后今天終于發(fā)布了第一個(gè) GA 版本。關(guān)于 PHP8新特性的文章各位讀者可能也有閱讀過(guò),今天小編會(huì)講解PHP8里幾個(gè)核心的特性。

          f1633bf591d5d6ff7d099c2e96f3ebb9.webp

          注解


          現(xiàn)在在PHP8中你可以使用[#[]]標(biāo)簽來(lái)給類進(jìn)行注解。

          #[Attribute]
          class ListensTo
          {
          public string $event;

          public function __construct(string $event)
          {
          $this->event = $event;
          }
          }

          通過(guò)注解你可以將:匿名類、函數(shù)、常量、閉包函數(shù)添加類屬性中。

          #[
          Route(Http::POST, '/products/create'),
          Autowire,
          ]
          class ProductsCreateController
          {
          public function __invoke() { /* … */ }
          }

          你可以使用反射來(lái)獲取它們,你可以向[getAttributes]傳遞可選的參數(shù),以便過(guò)濾結(jié)果。

          $attributes = $reflectionClass->getAttributes(
          ContainerAttribute::class,
          ReflectionAttribute::IS_INSTANCEOF
          );
          7073226e09964edefdbe846ef7de233c.webp

          語(yǔ)法糖

          ?????

          在 PHP8 中新增了幾個(gè)語(yǔ)法糖,可以了解一下。

          1丶Class Names(類名)

          從 PHP8 開始,你也可以在對(duì)象上使用 [::class]:

          Order::class;

          $object::class;

          2丶Numeric Values(數(shù)值)

          使用[_]操作符來(lái)格式化數(shù)字值:

          $price = 100_10;
          // $100 and 10 cents

          3丶Trailing Commas(逗號(hào))

          在以下地方允許使用逗號(hào):

          數(shù)組(Arrays)

          方法調(diào)用(Function calls)

          方法定義(Function definitions)

          閉包方法 use(Closure use statements)

          7073226e09964edefdbe846ef7de233c.webp

          異常

          ? ? ?

          拋出異常現(xiàn)在是一個(gè)表達(dá)式,這意味著你有更多的地方可以拋出,比如短閉包或作為閉包方法回調(diào)時(shí)。

          $error = fn($message) => throw new Error($message);

          $input = $data['input'] ?? throw new Exception('Input not set');

          你也不必再用[try catch]捕捉異常了。

          try {
          // …
          } catch (SpecificException) {
          throw new OtherException();
          }
          7073226e09964edefdbe846ef7de233c.webp

          匹配

          ? ? ?

          類似于[switch],但有很強(qiáng)的類型檢查,沒(méi)有[break]關(guān)鍵字,匹配對(duì)應(yīng)的關(guān)鍵字然后返回一個(gè)值。這個(gè)可以看鳥哥的博客,有很詳細(xì)的講解。

          $message = match ($statusCode) {
          200, 300 => null,
          400 => 'not found',
          500 => 'server error',
          default => 'unknown status code',
          };
          7073226e09964edefdbe846ef7de233c.webp

          已命名參數(shù)

          ? ? ?

          用參數(shù)名傳遞參數(shù)而不是參數(shù)的順序。

          setcookie(
          name: 'test',
          expires: time() + 60 * 60 * 2,
          );

          已命名的參數(shù)也支持[...]傳參。

          $data = [
          'name' => 'test',
          'expires' => time() + 60 * 60 * 2,
          ];

          setcookie(...$data);
          7073226e09964edefdbe846ef7de233c.webpbd17d0b3c460e11fe061eb98d93c969f.webp

          關(guān)于PHP8的新特性還有很多,本文就講解了幾個(gè)大家會(huì)常用到的,[JIT] 和 [Preloading] 也是PHP8中值得關(guān)注的新特性,由于篇幅有限就不一一贅述了。

          0f44a18ceb71933a37aaba99772d9ce7.webp

          如果覺(jué)得文章不錯(cuò)歡迎點(diǎn)贊和轉(zhuǎn)發(fā),關(guān)注本公眾號(hào)不定期推送PHP技術(shù)文章。

          7073226e09964edefdbe846ef7de233c.webp
          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产午夜免费视频 | 色婷婷综合网站 | 精品中文字幕97A片免费视频 | 大香蕉这里只有精品视频 | 欧美 国产 综合 |