Heim > Backend-Entwicklung > PHP8 > Erklären Sie die neuen Funktionen von PHP8 anhand von Beispielen

Erklären Sie die neuen Funktionen von PHP8 anhand von Beispielen

藏色散人
Freigeben: 2023-02-17 12:24:01
nach vorne
3558 Leute haben es durchsucht

PHP8.0 neue Funktionen, Interpretation und Beispiele

Neue benannte Parameterfunktion

Was sind benannte Parameter?
Beim Aufruf einer Funktion können Sie den Parameternamen angeben Name, Parameter Die Reihenfolge kann ohne Installation der ursprünglichen Funktionsparameter übergeben werden.


Beispiel:
  <?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);
Nach dem Login kopieren

Anmerkungsfunktion

Was sind Anmerkungen? Gehen Sie direkt zum Code und erklären Sie ihn abschließend.

Beispiel:
#[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’}
Nach dem Login kopieren

Persönliche Zusammenfassung der Annotationsfunktion. Mithilfe von Annotationen können Klassen in Metadatenklassen mit geringer Entkopplung und hoher Kohäsion definiert werden. Es kann bei Verwendung flexibel durch Annotationen eingeführt werden, und der Zweck des Aufrufs kann durch die Reflexion annotierter Klasseninstanzen erreicht werden.

**Die mit Anmerkungen versehene Klasse wird nur aufgerufen, wenn sie instanziiert wird


Konstruktorattribut-Promotion

Was bedeutet das? Der Modifikatorbereich des Klassenattributs kann im Konstruktor deklariert werden
Beispiel :

<?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
        ) {}
    }
Nach dem Login kopieren

Spart die Menge an Code, Klassenattribute müssen nicht separat deklariert werden.

Union-Typ

kann in Szenarien verwendet werden, in denen der Parametertyp unsicher ist.

Beispiel:
    function printSomeThing(string|int $value)
    {
        var_dump($value);
    }
Nach dem Login kopieren

Übereinstimmungsausdruck

ähnelt dem Wechselgeld, ist jedoch streng = = = Übereinstimmung

Beispiel:
<?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
Nach dem Login kopieren

Neuer Nullsafe-Operator
<?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调用,不报错,返回空
Nach dem Login kopieren

Vereinfachtes is_null-Urteil

Empfohlenes Lernen: „
PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonErklären Sie die neuen Funktionen von PHP8 anhand von Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage