PHP

Die Abstimmung über Union Types in den PHP Internals

Pläne für PHP 8.0: Abstimmung über Union Types gestartet
Keine Kommentare

Die Veröffentlichung von PHP 8.0 ist für das Jahr 2020 geplant. In den PHP Internals findet passend dazu gerade eine Diskussion über ein neues Features für die Major-Version statt. Gegenstand des RFC sind Union Types.

In den PHP Internals wird gerade über die Einführung von Union Types in PHP 8.0 diskutiert. Bereits im Juni 2016 gab es solch ein Voting für PHP 7.1. Damals wurde der Vorschlag allerdings abgelehnt.

Was sind Union Types?

Union Types akzeptieren Werte von mehreren verschiedenen Typen. PHP unterstützt bereits zwei Arten von Union Types. Zum einen werden Type oder null unter Verwendungen der speziellen Syntax ?Type sowie array oder Traversable, wenn der spezielle iterable-Type genutzt wird.

Beliebige Union Types werden bisher nicht unterstützt. Bisher müssen phpdoc-Annotations benutzt werden, wie das folgende Beispiel aus dem RFC zeigt:

 
class Number {
    /**
     * @var int|float $number
     */
    private $number;

    /**
     * @param int|float $number
     */
    public function setNumber($number) {
        $this->number = $number;
    }

    /**
     * @return int|float
     */
    public function getNumber() {
        return $this->number;
    }
}

Abstimmung: Union Types für PHP 8.0

Union Types sollen in PHP 8.0 mit der Syntax T1|T2|... spezifiziert werden. Darüber hinaus sollen sie in allen möglichen Position verwendet werden können, in denen derzeit Types akzeptiert werden. Im RFC findet sich ein Beispielcode:

 
class Number {
    private int|float $number;

    public function setNumber(int|float $number): void {
        $this->number = $number;
    }

    public function getNumber(): int|float {
        return $this->number;
    }
}

Die Abstimmung erfolgt über das PHP Wiki im PHP RFC: Union Types 2.0. Bis zum 08. November 2019 kann hier über das neue Feature von PHP 8.0 abgestimmt werden. Nach bisheriger Einschätzung wird es diesmal wohl nicht zu einer Ablehnung des Vorschlags kommen.

Weitere Informationen zur Abstimmung und zu den Union Types finden sich auf GitHub.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -