Examples of using union types in PHP 8
In PHP 8, union types allow you to declare that a function parameter, return value, or property can accept or return multiple types, separated by the vertical bar (`|`). This feature improves code flexibility and type safety.
Example: Using Union Types in PHP 8
class Number {
    private int|float $value;
    public function setValue(int|float $value): void {
        $this->value = $value;
    }
    public function getValue(): int|float {
        return $this->value;
    }
}
$number = new Number();
$number->setValue(5);      // Accepts integer
echo $number->getValue();  // Outputs: 5
$number->setValue(11.54);  // Accepts float
echo $number->getValue();  // Outputs: 11.54In this example, the `$value` property, the `setValue` parameter, and the `getValue` return type can all be either `int` or `float`.
Union Types with Nullable Values
You can also use union types to allow `null` values:
function getAnimal(): string|null {
    // Can return a string or null
    return null;
}This is equivalent to the old `?string` syntax, but now you can combine more than two types.
Summary Table
| Declaration | Meaning | |--------------------|--------------------------| | `int|float` | Accepts int or float | | `string|array`| Accepts string or array | | `int|float` | Accepts int or float |
Union types make your code more expressive and robust by clearly specifying all accepted types for a variable or function.
                    
                    Written by X2Y.DEV
                
                                    
                        PHP
                    
                                    
                        Web Dev
                    
                                    
                        Tips
                    
                            0%