在某些框架或者高手寫的代碼中,我們會發現有不少人喜歡在進行條件判斷的時候將常量寫在前面,比如:
if(1 == $a){
echo 111;
}
這樣做有什么好處呢?我們假設一個不小心的粗心大意,少寫了一個=號,會有什么結果,
$a = 'a';
if($a = 'b'){
echo 111;
}
echo $a;
沒錯,111輸出了,$a的值也變成了b,少了一個等號,就變成了賦值操作,這樣的操作會先給$a賦值,然后根據$a的值進行判斷,如果$a = '',就不會輸出111,但是$a的值還是會變成'',
劃重點:這樣的寫法php是不會報錯的,這也是有可能造成BUG的情況,
那么反過來呢?
$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
===============
關注公眾號:【硬核專案經理】獲取最新文章
添加微信/QQ好友:【xiaoyuezigonggong/149844827】免費得PHP、專案管理學習資料
知乎、公眾號、抖音、頭條搜索【硬核專案經理】
B站ID:482780532
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251388.html
標籤:PHP
下一篇:PHP中用+號連接陣列的結果是?
