PHP 字符串比较使用 '=='

标签 php comparison

我使用“==”对字符串进行了一些测试。我知道比较字符串 '==' 不是办法,但我想解决一个奇怪的行为。

我正在关注此页面中的 PHP 文档:http://www.php.net/manual/en/language.operators.comparison.php .这是我做的测试

<?php 
   var_dump( "100" == "1e2" ); //outputs boolean true
   var_dump( (int) "100" ); //int 100
   var_dump( (int) "1e2" ); //int 1
?> 

文档说当我们将字符串与数字进行比较时,PHP 首先将字符串转换为数字,但是当我将'100' 和'1e2' 转换为数字时它们并不相等。比较应输出 bool 值 false。

为什么会出现这种奇怪的行为?谢谢!

最佳答案

并非所有数字都是整数。 1e2 是一个 float (恰好可以表示为整数,但不能直接转换为整数)。尝试转换为 float 而不是 int:

<?php 
   var_dump( "100" == "1e2" ); // bool(true)
   var_dump( (float) "100" );  // float(100)
   var_dump( (float) "1e2" );  // float(100)
?> 

关于PHP 字符串比较使用 '==',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11489549/

相关文章:

php - 如何统计年龄等于一定数量的人数?

php - MySQL Fetch 在单个查询中连接具有多行的多个表

php - 杀死后台 php 脚本(共享主机)

php - 如何在 Laravel 之外运行 artisan ?

python - 从python中的URL获取查询字符串的最佳方法?

php - 需要正确的 PHP/MySQL 语法帮助

swift - 为什么我在 swift 和 optionSetType 结构值中收到以下代码的参数类型拒绝?

JavaScript:返回最大数字

c - C 中的 Struct 排序、比较和显示

java - 实现我自己的字符串比较