有什么区别:
$int = (int)$int;
和
settype($int,"int");
会有不同的结果吗?
答案 0 :(得分:1)
php
是一种弱类型语言。这确实意味着编译器可以
决定变量的类型。这使得
$var="string";
$var=5;
通过施法你可以做到:
$var=(int)$var; // disaster if $var were "string"
转换为类型强制变量,使其显示为该类型。
但是,settype实际上会更改脚本其余部分的变量类型。原型是:
bool settype ( mixed &$var , string $type )
但是,对于settype
,您有一些错误检查:
例如你可以做
if (settype($var,"int")) // You have some error checking in code.
// for php version older than 4.2.2 "integer"
{
//do something
}
答案 1 :(得分:0)
是的,他们是不同的。
类型转换 =强制将变量评估为特定类型。
settype =更改变量的类型。
答案 2 :(得分:0)
据我所知,settype修改了变量的类型(文档说明:"变量已转换。")。 (int)正在转换var。 settype也可以在某些情况下返回false ...