settype()
功能在PHP的返回类型为BOOLEAN
,但我总能找到返回类型TRUE
即1
无论多么怪异和无法理解的转换我尝试执行。PHP的setType函数总是返回true
如何进行不成功的类型转换,从而显示0
作为转换的返回。
settype()
功能在PHP的返回类型为BOOLEAN
,但我总能找到返回类型TRUE
即1
无论多么怪异和无法理解的转换我尝试执行。PHP的setType函数总是返回true
如何进行不成功的类型转换,从而显示0
作为转换的返回。
综观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
是没有用的。
做得不错,我没有在[php手册](http://php.net/manual/en/function.settype.php)中找到'resource',但我可以清楚地看到它在来源中。 – 2013-05-08 07:28:56
只是做了同样的事情来解决我的错误。还有第三个选项是假的:一个空的类型也会发出警告并且布尔假false http://codepad.org/e3zFh9Ld – 2013-05-08 07:29:34
是的。毕竟这也可以称为“未知类型”,只是警告是不同的。 – akirk 2013-05-08 07:30:13
可能的重复http://stackoverflow.com/questions/7923477/php-setttype-int-always-returns-1 – 2013-05-08 07:21:43
@DaveChen:我经历了那个职位。问题出现了,因为海报很可能不知道settype的返回类型是BOOLEAN。 – Mayur 2013-05-08 07:24:31
实现了我的错误并将其删除。看了之后的评论。对于跳到结论抱歉。 – 2013-05-08 07:25:43