是否可以编写严格类型的PHP代码?

2022-08-30 11:58:00

例如,是否可以编写如下代码:

int $x = 6;
str $y = "hello world";
bool $z = false;
MyObject $foo = new MyObject();

是否可以像这样定义函数:

public int function getBalance()
{
   return 555; //Or any numeric value
}

答案 1

在 PHP 7 中实现了“标量类型声明”,例如:

public function getBalance(): int {
    return 555;
}

您需要声明,您将使用严格类型:

<?php
    declare(strict_types=1);

    function sum(int $a, int $b): int {
        return $a + $b;
    }

    sum(1, 2);
?>

更多信息: https://wiki.php.net/rfc/scalar_type_hints_v5


答案 2

编辑:此答案适用于 PHP 5.6 及更早版本。正如最近的回答中所指出的,PHP 版本 7.0 及更高版本确实对此有一些支持。


原答:

不。自 php5 以来,仅支持类型提示,但“类型提示只能是对象和数组(从 PHP 5.1 开始)类型。不支持使用 int 和字符串的传统类型提示。

在 PHP 7 中实现了“标量类型声明”,请参阅下面的答案。

这是php目前所走的,如果你问我,它应该走得更远。


推荐