foo php,php – $foo === TRUE和TRUE === $foo有什么区别?
我明白,在下面的代码中……
$foo = TRUE;
$bar = 1;
if ($foo === TRUE)
{
echo 'Foo';
}
if ($bar === TRUE)
{
echo 'Bar';
}
…因为类型比较,只会打印Foo.
但是,我的问题是……
if ($foo === TRUE)
{
echo 'Foo1';
}
if (TRUE === $foo)
{
echo 'Foo2';
}
…因为据我所知,它们是相同的,但我记得在某个地方读到它们不是.我只是在梦想有关PHP的奇怪内容,还是实际上有区别?
谢谢!
解决方法:
它是一样的 – 只有当你把$foo放在右侧时,当你只使用一个“=”符号时,你可以避免那个可怕的错误.所以使用“左对比”是一个很好的做法.考虑一下:
// These 4 lines intended for the same check
// Notice the subtle differences!
if("secret_thing" = $password) {...} // you get an error but that's it
if("secret_thing" == $password) {...} // this is perfect
if($password == "secret_thing") {...} // this is acceptable
if($password = "secret_thing") {...} // you're deep in trouble, friend!
//
左边是文字,最糟糕的事情就是你得到一条错误信息.没什么大不了.右边是文字(还有一个小错字),窃贼就在你的起居室里.
实际上,这个拼写错误很容易制作,例如,如果你使用Pascal / Delphi / Lazarus,你有’:=’作为赋值,简单的’=’表示比较.当你这样做时,没有任何警报; PHP会认为他理解你.
TLDR:这是一个安全措施.
附注:您还可以使用比较功能来提高可读性.但是那个需要一些额外的微秒,所以在高性能的情况下只需坚持好旧的“==”/“===”符号.
标签:php,boolean
来源: https://codeday.me/bug/20190722/1507915.html
foo php,php – $foo === TRUE和TRUE === $foo有什么区别?相关推荐
- return true Java_[Java教程]js中return,return true,return false的用法及区别
[Java教程]js中return,return true,return false的用法及区别 0 2015-11-16 23:00:03 1.语法及返回方式 ①返回控制与函数结果 语法为:retu ...
- pytorch中的value, top = prob.topk(1, dim=1, largest=True, sorted=True)
函数: prob = F.softmax(logit, 1)#按行softmax,行和为1 value, top = prob.topk(1, dim=1, largest=True, sorted= ...
- loctionplace.reset_index(drop=True,inplace=True)
loctionplace.reset_index(drop=True,inplace=True)@TOC
- RMD kint 不输出 include=TRUE,echo=TRUE
r```{r include=TRUE,echo=TRUE} kint r```
- new FileOutputStream(“data\\test2.txt“,true),true是什么意思
官方文档如下表示 Creates a file output stream to write to the file with the specified name. If the second ar ...
- vue 保存全局变量_Vue+Typescript起手式
TypeScript是什么? TypeScript 是一种由微软开发的自由和开源的编程语言.它是 JavaScript 的一个超集,TypeScript 在 JavaScript 的基础上添加了可选的 ...
- javascript面向对象系列第一篇——构造函数和原型对象
前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数 构造函数是 ...
- 【复习资料】ES6/ES7/ES8/ES9资料整理(个人整理)
一.介绍 现在的网络上已经有各样关于 ECMAScript 规范介绍和分析的文章,而我自己重新学习一遍这些规范,整理出这么一份笔记,比较精简,主要内容涵盖ES6.ES7.ES8.ES9,后续会增加面试 ...
- 教你搭建基于typescript的vue项目
自尤大去年9月推出vue对typescript的支持后,一直想开箱尝试,对于前端sr来说,vue的顺滑加上ts的面向对象,想着就非常美好~ 终于在两个月前,找到了个机会尝试了一把vue+ts的组合. ...
最新文章
- 【Oracle】ORA 01810 格式代码出现两次-转
- python 搜索二维矩阵
- 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数
- 检查Java测试中发生了什么
- django--通过model拿到字段对象
- 2月第3周国内域名商TOP10:爱名网排名升至第八
- 微信支持环信_环信客户互动云v5.39已发布:支持微信小程序接入
- top-1和top-5正确率与错误率以及目标检测评价指标
- Babel 6.25 版本发布,JavaScript 编译器
- 40.django中重要概念
- java 15道经典,15道非常经典的Java面试题
- java后台开发工作职责_JAVA后台开发岗位职责
- 2020年中国天线行业发展现状及细分市场结构分析[图]
- App中使用微信公众号的模版消息来进行消息推送
- css的sprites什么意思,CSS Sprites是什么
- Java实现 LeetCode 717 1比特与2比特字符(暴力)
- svchost.exe占用网速多
- STM32调试过程 常见错误及解决方案
- Live Home 3D for Mac汉化破解版永久激活方法
- 5 个牛逼的算法设计,你知道几个?
热门文章
- Spring Boot 缓存应用实践
- Spring 的 Controller 是单例还是多例?怎么保证并发的安全
- 有趣的开源 AI 换脸工具:faceswap
- linux+取消磁盘阵列,Linux下彻底关闭某个RAID磁盘阵列
- android pdf阅读工具,android pdf 阅读器开发, pdf demo, pdf第三方控件
- android 无法安装测试版本,在测试应用更新时,安装无提示阻止Android版本构建签名APK...
- opencv 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
- 加权残差连接ReZero
- could not export python function call Remove calls to Python functions before export
- Python 3.6 安装 Shapely