我有一个同事经常会定义变量并强制指定它们的类型。例如,他会这样声明:
$this->id = (int)$this->getId();
或者当返回时,他总是以这样的方式返回值:
return (int)$id;
我知道PHP是一种弱类型语言,所以我不会问转换正在做什么。我真的想知道这样做的好处(如果有的话),或者他是否只是在浪费时间和精力?
我有一个同事经常会定义变量并强制指定它们的类型。例如,他会这样声明:
$this->id = (int)$this->getId();
或者当返回时,他总是以这样的方式返回值:
return (int)$id;
我知道PHP是一种弱类型语言,所以我不会问转换正在做什么。我真的想知道这样做的好处(如果有的话),或者他是否只是在浪费时间和精力?
这有几个好处。
http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting
PHP不需要(也不支持)在变量声明中显式定义类型;变量的类型由使用变量的上下文确定。也就是说,如果将字符串值分配给变量$var,则$var变成字符串。如果然后将整数值分配给$var,则它变成整数。http://www.php.net/manual/en/language.types.type-juggling.php
你可以尝试这样做。
function hello($foo, $bar) {
assert(is_int($foo));
assert(is_int($bar));
}