Terangkan ciri baharu PHP8 dengan contoh

藏色散人
Lepaskan: 2023-02-17 12:24:01
ke hadapan
3493 orang telah melayarinya
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);
Salin selepas log masuk
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’}
Salin selepas log masuk
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
        ) {}
    }
Salin selepas log masuk
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);
    }
Salin selepas log masuk
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
Salin selepas log masuk
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调用,不报错,返回空
Salin selepas log masuk
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!

Label berkaitan:
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!