Rumah >pembangunan bahagian belakang >PHP8 >Terangkan ciri baharu PHP8 dengan contoh

Terangkan ciri baharu PHP8 dengan contoh

藏色散人
藏色散人ke hadapan
2021-12-02 14:14:153563semak imbas
Artikel ini membawakan anda tafsiran ciri baharu dan contoh PHP8, saya harap ia dapat membantu rakan yang memerlukan!

Tafsiran dan contoh ciri baharu PHP8.0

Fungsi parameter dinamakan baharu

Apakah yang dinamakan parameter?

Ia ialah parameter bernama Apabila memanggil fungsi, anda boleh menentukan nama parameter Selepas menentukan nama parameter, susunan parameter boleh dihantar mengikut urutan tanpa memasang parameter fungsi asal.

Contoh:

  <?php      /**
       * 计算余额方法
       * @param $amount 账户金额
       * @param $payment 支出金额
       * @return $balance = $amount-$payment 余额
       */
      function balance($amount, $payment)
      {
          return $amount - $payment;
      }
      //传统方式调用
      balance(100, 20);
      //php8 使用命名参数调用
      balance(amount: 100, payment: 20);
      //也可以换个顺序,这样来
      balance(payment: 20, amount: 100);
Fungsi anotasi

Apakah anotasi? Pergi terus ke kod, dan akhirnya terangkan

Contoh:

#[Attribute]class PrintSomeThing{
  public function __construct($str = &#39;&#39;)
  {
     echo sprintf("打印字符串 %s \n", $str);
  }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) {
  $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}
Ringkasan pemahaman peribadi tentang fungsi anotasi, menggunakan anotasi boleh mentakrifkan kelas kepada penyahgandingan rendah, tinggi- kelas Metadata kohesi. Ia boleh diperkenalkan secara fleksibel melalui anotasi apabila digunakan, dan tujuan panggilan boleh dicapai apabila mencerminkan kejadian kelas beranotasi.

**Kelas beranotasi hanya akan dipanggil apabila ia dibuat seketika

Promosi hartanah pembina

Apa adakah ini bermakna? Anda boleh mengisytiharkan skop pengubah suai atribut kelas dalam pembina

Contoh:

<?php
    // php8之前
    class User
    {
        protected string $name;
        protected int $age;
        public function __construct(string $name, int $age)
        {
            $this->name = $name;
            $this->age = $age;
        }
    }
    //php8写法,
    class User
    {
        public function __construct(
            protected string $name,
            protected int $age
        ) {}
    }
Ia menjimatkan jumlah kod dan tidak perlu mengisytiharkan atribut kelas secara berasingan.

Jenis kesatuan

boleh digunakan dalam senario di mana jenis parameter tidak pasti.

Contoh:

    function printSomeThing(string|int $value)
    {
        var_dump($value);
    }
Ungkapan padanan

serupa dengan menukar tunai, tetapi ia adalah padanan === yang ketat

Contoh:

<?php$key = &#39;b&#39;;$str = match($key) {
    &#39;a&#39; => 'this a',
    'c' => 'this c',
     0  => 'this 0',
    'b' => 'last b',};echo $str;//输出 last b
Pengendali Nullsafe baharu

<?php
   class User
   {
       public function __construct(private string $name)
       {
           //啥也不干
       }
       public function getName()
       {
           return $this->name;
       }
    }
    //不实例 User 类,设置为null
    $user = null;
   echo $user->getName();//php8之前调用,报错
   echo $user?->getName();//php8调用,不报错,返回空
Memudahkan penghakiman batal

Pembelajaran yang disyorkan: "
Tutorial Video PHP"

Atas ialah kandungan terperinci Terangkan ciri baharu PHP8 dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam