-3

可能重复:
为什么 PHP 认为 0 等于字符串?
php字符串与0整数的比较返回true?

似乎在 PHP 中有一个 if 语句,其中函数 some_function() 返回零

<?php
if( some_function() == "whatever_you_want" ) { ... }

该语句将始终执行,因为

<?php
echo some_function() == "whatever_you_want";

则为 TRUE。

为什么 PHP 以如此反直觉的方式表现?

4

1 回答 1

1

这是比较数字值和字符串值时 PHP 定义的行为

如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都将转换为数字并以数字方式执行比较。这些规则也适用于 switch 语句。比较时不会发生类型转换,===因为!==这涉及比较类型和值。

使用===or进行严格的值比较,!==您将获得预期的结果。

于 2012-09-29T11:13:39.080 回答