PHP基础-数据类型-string和int比较

在 php 中,string 类型和 int 类型相比较,string 类型的值会被转为 int 类型,实质上是两个 int 类型的数值相互比较。

代码:#

<?php
$a = 'c';
$b = 0;
var_dump($a == $b);//输出true
$c = 1;
var_dump($a == $c);//输出false
$d = true;
var_dump($a == $d);//输出true
$c = false;
var_dump($a == $c);//输出false

从以上结果发现:#

  • string 类型的值和 int 类型的值比较,会被转为 int 类型的 0,也就是 true
  • string 类型的值和 bool 类型的值比较,会被转为 bool 类型的 true
本作品采用《CC 协议》,转载必须注明作者和本文链接
✍️博客文章皆为网络收藏整理,作书签使用,方便后期查阅。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
zhanghaidi

php 中 0 不是返回 false 嘛?为什么 string 类型转成的 0 却是返回 true

4年前 评论
whitek 4年前

把 $a 改成 $a = '1c' 试试,后面结果会有不一样的,隐式转换 $a 会被转成 int,值等于 1 的,当 $a = 'c1' 的时候就和 $a='c' 的情况一样了

4年前 评论