Tuesday, February 3, 2026
HomeLanguagesPHP 8 Union types

PHP 8 Union types

A “union type” accepts values of multiple different data types, rather than a single one. If the programming language supports union types, you can declare a variable in multiple types. For example, there can be a function that can accept the variable of type “string” or “float” as a parameter. PHP already supports two special union types.

  • Type or null, using the special “?Type” syntax.
  • Array or Traversable, using the special iterable type.

But before the update, arbitrary union types were not supported by the language. Instead, we used PHPDoc annotations which was quite a work to do.

Example 1:

PHP




<?php
 class GFG {
    /**
     * @var int|float $CodingScore
     */
    private $CodingScore;
   
    /**
     * @param int|float $CodingScore
     */
    public function setScore($CodingScore) {
        $this->CodingScore = $CodingScore;
    }
   
    /**
     * @return int|float
     */
    public function getScore() {
        return $this->CodingScore;
    }
}
$a = new GFG();
$a->setScore(120.5);
echo $a->getScore(), "\r\n" ;
  
$b = new GFG();
$b->setScore(100);
echo $b->getScore();
  
?>


Output:

120.5
100

 

But after this update, Union types are specified using the following syntax

T1|T2|...

It can be used in all positions where types are currently accepted as follows.

Example 2:

PHP




<?php
    class GFG {
    private int|float $CodingScore;
   
    // Union type
    public function setScore(int|float $CodingScore): void {
        $this->CodingScore = $CodingScore;
    }
   
    //Union type
    public function getScore(): int|float {
        return $this->CodingScore;
    }
}
  
$a = new GFG();
$a->setScore(120.8);
echo  $a->getScore(),"\r\n";
$a->setScore(100);
echo $a->getScore();
  
?>


Output:

120.8
100
RELATED ARTICLES

Most Popular

Dominic
32478 POSTS0 COMMENTS
Milvus
124 POSTS0 COMMENTS
Nango Kala
6849 POSTS0 COMMENTS
Nicole Veronica
11980 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12066 POSTS0 COMMENTS
Shaida Kate Naidoo
6987 POSTS0 COMMENTS
Ted Musemwa
7222 POSTS0 COMMENTS
Thapelo Manthata
6935 POSTS0 COMMENTS
Umr Jansen
6919 POSTS0 COMMENTS