Never

never é um tipo de retorno que indica que a função não termina. Isso significa que a função chama exit(), lança uma exceção ou é um loop infinito. Portanto, não pode fazer parte de uma declaração de tipo de união. Disponível a partir do PHP 8.1.0.

never é, na linguagem da teoria dos tipos, o tipo inferior. O que significa que é o subtipo de todos os outros tipos e pode substituir qualquer outro tipo de retorno durante a herança.

add a note add a note

User Contributed Notes 2 notes

up
7
ali1289445 at gmail dot com
1 year ago
<?php

function sayHello(string $name): never
{
    echo
"Hello, $name";
    exit();
// if we comment this line, php throws fatal error
}

sayHello("John"); // result: "Hello, John"
up
0
mateusz dot charytoniuk at protonmail dot com
1 year ago
Overriding the return type of native interfaces:

<?php

class ReadonlyArrayAccess implements ArrayAccess
{
    public function
__construct(private readonly $array) {}

    public function
offsetExists(mixed $offset): bool
   
{
        return isset(
$this->array[$offset]);
    }

    public function
offsetGet(mixed $offset): mixed
   
{
        return
$this->array[$offset];
    }

    public function
offsetSet(mixed $offset, mixed $value): never
   
{
        throw new
LogicException('This array is read only');
    }

    public function
offsetUnset(mixed $offset): never
   
{
        throw new
LogicException('This array is read only');
    }
}
To Top