PHP 8 Union types
Last Updated :
27 Jul, 2021
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 {
private $CodingScore ;
public function setScore( $CodingScore ) {
$this ->CodingScore = $CodingScore ;
}
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 ;
public function setScore(int|float $CodingScore ): void {
$this ->CodingScore = $CodingScore ;
}
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
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...