@return int always return string php

@return int always return string php

我有下一段代码:

 /**
 * @return int
 */
public function getId()
{
    return $this->id;
}

当我使用 apache2 在服务器中执行时,此 return 总是字符串值,但在另一台服务器中使用 nginx return整数值。 这里为什么不一样,配置成nginx或者apache还是php.ini?

我在两个服务器中都有 php7。

拜托,我需要知道为什么会出现这个问题。感谢您的回复。

PHP 评论通常不会影响 运行 时间。在代码中使用注释有一些特殊情况,但类型提示通常不是其中之一。它仅供人类和 IDE 提供有关类型的信息。

所以 原因 它之所以不同是因为无论该值来自何处都使其不同。

您可以强制转换,就像转换一样,将值显式转换为必要的类型return (int) $this->id

因为 PHP 7 它 确实 允许您明确指定 return 类型:

public function getId() : int
{
    return $this->id;
}

有关详细信息,请参阅文档中的 return type declaration