2013-05-08 140 views
0

settype()功能在PHP的返回类型为BOOLEAN,但我总能找到返回类型TRUE1无论多么怪异和无法理解的转换我尝试执行。PHP的setType函数总是返回true

如何进行不成功的类型转换,从而显示0作为转换的返回。

+0

可能的重复http://stackoverflow.com/questions/7923477/php-setttype-in​​t-always-returns-1 – 2013-05-08 07:21:43

+0

@DaveChen:我经历了那个职位。问题出现了,因为海报很可能不知道settype的返回类型是BOOLEAN。 – Mayur 2013-05-08 07:24:31

+0

实现了我的错误并将其删除。看了之后的评论。对于跳到结论抱歉。 – 2013-05-08 07:25:43

回答

6

综观type.c PHP源代码,你可以看到有2例,其中settype将返回false:当您尝试转换为资源或当您尝试转换到一个未知类型:

$x = ""; 
var_dump(settype($x, "resource")); 
// will return bool(false) and issue a warning 
var_dump(settype($x, "bla")); 
// will return bool(false) and issue a warning 

因此,当您想验证类型转换的结果settype是没有用的。

+0

做得不错,我没有在[php手册](http://php.net/manual/en/function.settype.php)中找到'resource',但我可以清楚地看到它在来源中。 – 2013-05-08 07:28:56

+0

只是做了同样的事情来解决我的错误。还有第三个选项是假的:一个空的类型也会发出警告并且布尔假false http://codepad.org/e3zFh9Ld – 2013-05-08 07:29:34

+0

是的。毕竟这也可以称为“未知类型”,只是警告是不同的。 – akirk 2013-05-08 07:30:13