【问题标题】:PHP settype function always returns truePHP settype 函数总是返回 true
【发布时间】:2013-05-08 07:19:00
【问题描述】:

PHP 中settype() 函数的返回类型是BOOLEAN,但无论我尝试执行多么奇怪和难以理解的转换,我总是找到返回类型为TRUE1

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

【问题讨论】:

  • @DaveChen :我浏览了那个帖子。问题的出现是因为发帖人很可能不知道 settype 的返回类型是 BOOLEAN。
  • 意识到我的错误并删除了它。之后看到了cmets。很抱歉草草下结论。
  • 我这里的问题是关于我们将获得类型转换操作的 FALSE 返回类型的实例,以便在将来小心注意。

标签: php


【解决方案1】:

查看type.c的PHP源码可以看到settype只有2种情况会返回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 manual 中没有找到resource,但我可以在源代码中清楚地看到它。
  • 刚刚做了同样的事情来修复我的错误。不过还有第三个 false 选项:空类型也会发出警告和 bool false codepad.org/e3zFh9Ld
  • 是的。毕竟这也可以称为“未知类型”,只是警告不同。
  • @HugoDelsing 我会将其限定为未知类型(= 与所列类型不匹配的任何类型)
  • @h2ooooooo 确实,但这是一个致命错误,而不是返回值false
猜你喜欢
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
相关资源
最近更新 更多