PHP settype和(int)之间的区别?

时间:2016-05-07 18:13:10

标签: php

有什么区别:

$int = (int)$int;

settype($int,"int");

会有不同的结果吗?

3 个答案:

答案 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 ...