✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Verwenden von nullbaren Rückgabetypen in PHP

38

„Eine der nettesten Funktionen, die PHP bietet, ist Typhinweis speziell für diejenigen, die aus einem objektorientierten Programmierhintergrund kommen.

Aus dem PHP-Handbuch :

Typdeklarationen ermöglichen es Funktionen, zu verlangen, dass Parameter zum Zeitpunkt des Aufrufs einen bestimmten Typ haben. Wenn der angegebene Wert vom falschen Typ ist, wird ein Fehler generiert: In PHP 5 ist dies ein behebbarer schwerwiegender Fehler, während PHP 7 eine TypeError- Ausnahme auslöst.

Das ist wichtig, weil es Leuten, die Ihren Code verwenden werden – insbesondere denen, die Code für Ihren Code schreiben – mitteilt, welche Arten von Parametern ein bestimmter Konstruktor oder eine bestimmte Funktion akzeptiert.

Aber es steckt noch mehr dahinter, denn Typhinweise gelten auch für den Datentyp, den eine Funktion zurückgeben kann.

Nullfähige Rückgabetypen

Nehmen wir für den Anfang an, Sie haben eine Funktion, die irgendein Objekt zurückgeben soll. Nehmen wir in diesem Beispiel an, dass wir ein haben Postund der Beitrag durch ein Modell dargestellt wird. Natürlich wird das Modell vom Typ post sein, sodass die Klassensignatur ungefähr so ​​​​aussehen wird :

<?php

namespace Acme;

class Post {
  // Attributes, Constructor, and Functions here.
}

Nehmen wir nun an, Sie haben eine sekundäre Klasse, die eine Instanz des Beitrags zurückgibt. Wenn Sie einen Typhinweis für die Funktion verwenden, würde die Signatur in etwa so aussehen :

<?php

namespace Acme;

class PostManager {

  private $post;

  // Constructor and other Functions here.

  public function getPost(): Post
  {
    return $this->post;
  }

}

Die Sache ist, dass die Methode einen Beitrag zurückgeben kann oder nullwenn das Modell nie instanziiert wurde, an eine bestimmte Klasse übergeben wurde oder aus irgendeinem Grund einfach nicht existiert, dann müssen wir das berücksichtigen.

Ein typisches Beispiel: Wenn Sie längere Zeit intensiv mit WordPress gearbeitet haben, wissen Sie, dass Funktionen mehrere Dinge zurückgeben können (wie eine Instanz von WP_Erroroder ein Array). Aber im reinsten objektorientierten Fall, von dem ich oben spreche, sehen wir uns eine Funktion an, die nulleine Instanz von zurückgeben kann oder zurückgeben kann Post.

Und um dies anzuzeigen, können Sie die Methode wie folgt einrichten :

<?php

namespace Acme;

class PostManager {

  private $post;

  // Constructor and other Functions here.

  public function getPost(): ?Post
  {
    if ($this->post === null) {
      return null;
    }

    return $this->post;
  }
}

Kurz gesagt, das Hinzufügen des einfachen Fragezeichens vor dem Objekttyp besagt: „Diese Methode kann null oder eine Instanz von zurückgeben Post.“

Oder genauer gesagt aus dem PHP-Handbuch:

Typdeklarationen für Parameter und Rückgabewerte können jetzt als nullable gekennzeichnet werden, indem dem Typnamen ein Fragezeichen vorangestellt wird. Dies bedeutet, dass neben dem angegebenen Typ NULLauch als Argument übergeben bzw. als Wert zurückgegeben werden kann.

Also, ja, das ist ein etwas längerer Beitrag, um ein einfaches Konzept zu erklären. Aber ich finde, dass es oft hilfreicher ist, konkrete Beispiele zu verwenden, als nur abstrakt darüber zu reden.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen