• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于SegmentFault:PHP中使用if的时候为什么建议将常量放在前面

php 搞代码 3年前 (2022-03-01) 22次浏览 已收录 0个评论

在某些框架或者高手写的代码中,咱们会发现有不少人喜爱在进行条件判断的时候将常量写在后面,比方:

<code class="php">
if(1 == $a){
    echo 111;
}

这样做有什么益处呢?咱们假如一个不小心的粗枝大叶,少写了一个=号,会有什么后果。

<code class="php">
$a = 'a';
if($a = 'b'){
    echo 111;
}
echo $a;

没错,111输入了,$a的值也变成了b。少了一个等号,就变成了赋值操作,这样的操作会先给$a赋值,而后依据$a的值进行判断。如果$a = ”,就不会输入111,然而$a的值还是会变成”。

划重点:这样的写法php是不会报错的,这也是有可能造成BUG的状况。

那么反过来呢?

<code class="php">
$a = 'a';
if('b' = $a){
    echo 111;
}

首先,大部分的IDE都会报语法错误,也就是间接划红线了。常量是不能被赋值批改的,不论是数字、字符串还是零碎或者咱们本人曾经定义了的常量。

其次,这种状况下你要是还发现不了这里有问题的话也没关系,运行起来也会报错的,代码是无奈持续向下运行的。

当然,这只是一个小技巧,而且最次要的目标是为了应答大意带来的问题。所以并不是强制的标准,有些公司可能会在代码审计或者标准文档中强调这样写法,当然,最好的还是咱们要杜绝这种大意带来的谬误。

测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E4%B8%AD%E4%BD%BF%E7%94%A8if%E7%9A%84%E6%97%B6%E5%80%99%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BB%BA%E8%AE%AE%E5%B0%86%E5%B8%B8%E9%87%8F%E6%94%BE%E5%9C%A8%E5%89%8D%E9%9D%A2%EF%BC%9F.php

===========

各自媒体平台均可搜寻【硬核项目经理】


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于SegmentFault:PHP中使用if的时候为什么建议将常量放在前面

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址