0

当我将我的站点从 HostGator 移至专用服务器时,有几件事情被破坏了,而且所有事情都被破坏了,涉及类型强制。如果 $_POST['var'] 为 0,则它不被视为整数,并且与另一个整数的比较失败。

我在我发现的网站上所有那些损坏的地方都经过并强制使用 int 类型,但我敢肯定还有更多我没有找到。我对 PHP.ini 配置不是很熟悉,但也许你是并且可以告诉我如何解决这个问题?

谢谢

4

1 回答 1

5

不——您不能更改 PHP 的类型转换功能,但您可以编写代码以更好地处理 PHP 的动态类型转换。

所有请求变量都被自动视为字符串。如果没有看到您的代码,很难确定“比较失败”的标准是什么。

如果我运行:

print var_export((0=="0"), true) . "\n";
print var_export(("0"==0), true) . "\n";
print var_export((0==(integer)"0"), true) . "\n";
print var_export((0==="0"), true) . "\n";

然后我得到

true
true
true
false

即整数比较失败的唯一时间是当我要求匹配类型和值时。

于 2010-03-09T17:32:47.403 回答