CascadiaPHP 2024

never

never işlevin sonlanmayacağı belirten bir dönüş türüdür. Yani ya exit() çağrısıyla bir istisna oluşturur ya da sonsuz döngüde kalır. Bu bakımdan union (birleşik) türün parçası olamaz. PHP 8.1.0 ve sonrasında kullanılabilir.

never tür teorisi tabiriyle en alt türdür. Yani diğer her türün alt türü olabilir ve kalıtım sırasında yerini başka bir tür alabilir.

add a note

User Contributed Notes 2 notes

up
19
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
-14
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