Friday, October 24, 2025
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
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS