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