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的组合. ...
最新文章
- 劝大家逃离互联网!某前互联网员工自述:从互联网到传统行业,工资多,不加班,有户口,能买房!...
- mysql备份恢复实验
- 转载--web前端工程化
- string java getbytes_从 String.getBytes 理解 Java 编码和解码
- oracle 次月,Oracle日期查询:季度、月份、星期等时间信息
- html 字符串最后加空格,html space空格符
- 【C++grammar】文件I/O流的基本用法
- 教你正确设置CrossOver的Wine配置(一)
- 嵌入式Ubuntu 搭建caffee环境
- HTML计算机代码元素
- codeblock 添加 .lib 文件
- 京瓷m1025维修模式进不去_京瓷1025打印机无法扫描怎么处理?
- 学习windows编程 day3 之 自定义画笔的两种方法
- Mac快捷键【窗口最小化、切换窗口】
- python OpenCV 颜色通道问题 子图颜色异常问题
- uni-app 的 tabBar 图标自制方法
- 固定IP和自动IP切换bat脚本
- oracle11g64位怎么用sql,PLSQLDeveloper连接Oracle11g64位数据库配置详解(图文)
- python统计指定数字和_Python实现统计给定列表中指定数字出现次数的方法
- 同步线程和异步线程的区别