这应该是一件小事,但我还没有找到PHP中类型转换类变量的正确语法。我试过这样:
public int $approved;
和
public (int) $approved;
但这两种方式脚本都不会运行。我有很多名字,所以在代码中直观地看到数据类型将有助于区分。有什么办法吗?
PHP 没有语法来完成类声明本身中你想要的。然而,社区在很大程度上围绕phpDocumentor制定的文档规范进行了整合。 在您的情况下,您将在属性的文档块中使用 @var
关键字。
/**
* @var int
*/
public $approved;
/**
* @var int
*/
protected static $othervar;
如果你想看到一个使用这种方法的记录良好的代码示例,我建议查看Symfony Framework代码库(尽管它们可能并不总是记录类属性)。
在写入属性时,您将无法强制类型int
,除非您将它们设为private
并创建了一个资源库来通过 __set()
强制它们。这是不灵活的,因为您需要考虑许多不同的类型。 PHP 是动态类型的;大多数试图让它表现得其他的尝试可能会充满挫败感。
是的,
不,PHP 没有强类型(它会将任何变量转换为它使用的样子)。
你所能做的就是写
public $approved;
请记住,您希望在其中存储数值(当它们来自数据库时,PHP 甚至可能会将值存储为字符串,并在您开始使用它进行计算时隐式转换为 int)。
一些编辑器支持类似phpdoc的提示,可以帮助您记住哪个变量是哪种类型:
/**
* @var int
*/
public $approved;
但这不是标准行为。
无论如何,没有办法始终如一地强制 PHP 在变量上只使用一种类型。
除了大家说的,我还想补充一点:
在你真的需要一个真正的INT(没有代表数字的字符串)然后你可以使用intval