true, false и null как самостоятельные типы
До версии PHP 8.2 можно было использовать null и только false только как части Union Types:
function foo(): string|null {}
function strpos(): int|false {}class User extends Model
{
/**
* @return false
*/
public function isAdmin(): bool
{
return false;
}
}
Начиная с PHP 8.2 можно писать так и не будет ошибок:
class User extends Model
{
public function isAdmin(): false
{
return false;
}
}
false, true, null можно использовать как самостоятельный тип везде, где PHP принимает тип:
class Foo {
private true $processed;
private false $focused;
public function process(string|int|true $value): true {}
public function focus(int|false $value): false {}
}Более подробно в посте
https://sergeymukhin.com/blog/php-82-true-false-i-null-kak-samostoiatelnye-tipy