php程序中 if(1==$user) 和 if($user ==1) 在效率上有區別嗎?
兩種寫法都看到過
效率上沒什麼區別
--------------if(1==$user)
在編程中,如果忘了一個=,程序會報錯if($user==1)
如果你忘了一個=,可能永遠也發現不了就是通過編程習慣來減少碼代碼時的錯誤,減少意外Bug
在php這種動態語言中,比較這種效率問題得多蛋疼?
我來手動測試驗證下:
測試結果: real 0m12.352s $ time php test1.php real 0m12.240s $ time php test2.php real 0m4.635s $ time php test3.php real 0m4.620s 運行10000w次有0.001s(1ms)的精度差別,再考慮到2次測試的系統的各種調度,可以認為沒有效率上的差別。正如 @崔偉 所說 這是一種代碼習慣 如果你想自己再測試下又懶得複製黏貼代碼,這裡可以下載測試文件XCode/projects/==/php at master · Jayin/XCode · GitHub&
&
&
&
$ time php test.php
user 0m0.000s
sys 0m0.015s
user 0m0.000s
sys 0m0.031s
user 0m0.015s
sys 0m0.000s
user 0m0.000s
sys 0m0.015s
感謝邀請!
雖然沒做過此類測試,但是感覺在效率上應該沒啥差距。
欣賞樓主的這種態度。
考慮這種情況的效率毫無意義
培養良好書寫習慣,從娃娃抓起
PHP cookbook 3rd上說的就是最高票的意思,完全是避免把=和==搞混淆了。僅此而已。
追求性能到這種地步,你就換個語言吧!
$ time php test.php
real 0m12.352s
user 0m0.000s
sys 0m0.015s
$ time php test1.php
real 0m12.240s
user 0m0.000s
sys 0m0.031s
$ time php test2.php
real 0m4.635s
user 0m0.015s
sys 0m0.000s
$ time php test3.php
real 0m4.620s
user 0m0.000s
sys 0m0.015s
效率上很難看出區別。這種寫法主要是為了避免把==寫成=,畢竟頭昏腦脹的時候一眼看上去$a = 1很像是對的,而1 = $a不管你怎麼頭昏腦脹還是會覺得不對。此外這種習慣不僅存在於php的編寫中,在其他語言里也很常見
這不涉及效率問題,這是一種代碼習慣,以便於防止手誤,將==寫成=,這個錯誤是所有C及C衍生語言或類C語言程序員都犯過的錯誤~~
推薦閱讀:
※如何通俗地解釋 CGI、FastCGI、php-fpm 之間的關係?
※PHP 面試問哪些問題可以比較準確的反映出應聘者的開發水平?
※PHP高級程序員所要掌握的技能?
※作為一名合格的PHP程序員,應該進行哪些技術儲備?
※PHP自由職業者靠譜嗎?或者說是大學在校生,靠接一些項目來做賺錢養活自己。?