我有一个同事不断分配变量并强制他们的类型。例如,他会声明如下:
$this->id = (int)$this->getId();
或者在返回时,他将始终返回值:
return (int)$id;
据我所知,php是一种松散类型的语言,因此我不知道该演员正在做什么。我真的很想知道这样做有什么好处 - 如果有的话 - 或者他是否只是在浪费时间和精力去做这件事?
答案 0 :(得分:4)
有一些好处。
答案 1 :(得分:1)
将值显式转换为 整数,使用(int)或 (整数)演员。 然而,在大多数情况下 因为a,不需要演员表 值将自动转换 如果是操作员,功能或控制 结构需要一个整数 参数。值也可以 用intval()转换为整数 功能
http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting
PHP不需要(或支持) 变量中的显式类型定义 宣言;变量的类型是 由上下文确定 使用变量。也就是说,如果是 字符串值分配给变量 $ var,$ var成为一个字符串。如果 然后将整数值赋值给 $ var,它变成一个整数。
PHP自动类型的一个例子 转换是加法运算符 '+'。如果任一操作数是浮点数, 那么两个操作数都被评估为 漂浮,结果将是一个 浮动。否则,操作数将是 解释为整数,和 结果也将是一个整数。注意 这不会改变类型 操作本身;唯一的 改变是操作数的方式 评估和什么类型的 表达本身就是。
http://www.php.net/manual/en/language.types.type-juggling.php
你可以这样做。
function hello($foo, $bar) {
assert(is_int($foo));
assert(is_int($bar));
}