是否可以编写严格类型的PHP代码?
例如,是否可以编写如下代码:
int $x = 6;
str $y = "hello world";
bool $z = false;
MyObject $foo = new MyObject();
是否可以像这样定义函数:
public int function getBalance()
{
return 555; //Or any numeric value
}
例如,是否可以编写如下代码:
int $x = 6;
str $y = "hello world";
bool $z = false;
MyObject $foo = new MyObject();
是否可以像这样定义函数:
public int function getBalance()
{
return 555; //Or any numeric value
}
在 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);
?>
编辑:此答案适用于 PHP 5.6 及更早版本。正如最近的回答中所指出的,PHP 版本 7.0 及更高版本确实对此有一些支持。
原答:
不。自 php5 以来,仅支持类型提示,但“类型提示只能是对象和数组(从 PHP 5.1 开始)类型。不支持使用 int 和字符串的传统类型提示。
在 PHP 7 中实现了“标量类型声明”,请参阅下面的答案。
这是php目前所走的,如果你问我,它应该走得更远。