PHP中的表名要不要define?
01-29
這篇文章的題目乍看莫名其妙。它說的是這麼一個問題:
PHP代碼中表示mysql的表名的是字元串,是直接用字面量呢,還是要define一下呢?
<?phpn$sql = "select from t1 limit 1";n// ORndefine(TB_1, t1);n$sql = "select from ".TB_1." limit 1";n
表面上看來第一種寫法更簡潔,第二種寫法更啰嗦一些。
但如果t1表在代碼中不止出現一次的話,第二種寫法也有幾種好處。
- 萬一t1表改名了,只需要改一處(改名的概率很小)
- 在IDE中獲得自動補全以及錯誤提示。
改名這件事情,真的很難遇到。可是一旦遇到,就是雞飛狗跳。有經驗的老程序員不會輕易改名。
自動補全和錯誤提示,比想像中的作用要大。因為SQL中寫錯表名,可能要到運行時才會報錯,那麼怎麼保證你不寫錯呢,使用define,只要一次寫對,就次次寫對了。
當然,有的IDE也可以lint SQL,有的ORM也可以讓你不用手寫表名。那就更好了。
我羅里吧嗦的說了這麼多,你可能覺得我再說廢話。因為要define這件事情,大家可能都知道。
我是想通過這件事情講一個原則:
讓我們掉進成功的坑裡
寫程序的時候,有些地方很容易出bug。一旦發生不幸,大家不免大吼一聲:坑!
但如果我們習慣性的不留坑,那麼最後走下去,就是成功的道路。
不要給未來的自己留坑,不要給別人留坑。
其實,有時候,未來的自己就是別人。三個月後的你對著自己的代碼抓耳撓腮的時候,你可能會憎恨過去的自己。
推薦閱讀:
※為什麼好多人寫php的時候總是判斷反邏輯呢?
※9段PHP實用功能的代碼推薦
※Linux下php-fpm進程過多導致內存耗盡問題解決
※PHP易錯面試題收集-持續更新