PHP 7 中不(bù)要(yào)做(zuò©★)的(de)10件(jiàn)事(shì)情
來(lái)源:創立工(gōng)作(zuò)室 作(zuò)者:馮"β軍 發布時(shí)間(jiān):2020-07-11 14:18:26☆×✘ 閱讀(dú) 1170 次
1、不(bù)要(yào)使用(yòng)mysql_函數(shù)
這(zhè)一(yī)天終于來(lái)了(le),從(cóng)此你(n∑₹βǐ)不(bù)僅僅“不(bù)應該”使用(yòng)mysql_函數(sh ≥ ù)。PHP 7 已經把它們從(cóng)核心中全部移除了(le)↔♠↔π,也(yě)就(jiù)是(shì)說(shuō)你(nǐ)需要(y•ào)遷移到(dào)好(hǎo)得(de)多(duōπφ)的(de)mysqli_函數(shù)↑,或者更靈活的(de) PDO 實現(xiàn)。
2、不(bù)要(yào)編寫垃圾代碼
這(zhè)一(yī)條可(kě)能(néng)易于理(lǐ)解¥£,但(dàn)是(shì)會(huì)變得(de)越來(lái)越重要(y☆¥αào),因為(wèi) PHP 7 的(de)速度提升可(kě)能≠±"(néng)會(huì)隐藏你(nǐ)的(de)一(yī)些(xiē)問(wè®β→•n)題。不(bù)要(yào)僅僅滿足于你(nǐ)的(de)站δ≥(zhàn)點速度,因為(wèi)遷移到(dào) PH≥®P 7 才讓它變快(kuài)。
為(wèi)了(le)理(lǐ)解速度有(yǒu)多(duō)重要(yào)→™≈∏,以及如(rú)何把事(shì)情做(zuò)得(d"¥φ∏e)更好(hǎo),請(qǐng)看(kàn)一(yī)看(kàn€₽♣♥)我們的(de)文(wén)章(zhāng)速度優化(¶★εhuà)入門(mén)指南(nán)。
作(zuò)為(wèi)一(yī)名開("→$ kāi)發者,你(nǐ)應該總是(shì)确保按需加載腳本,盡可(∏ελ↑kě)能(néng)連接它們,編寫高(gāo)效的(de)數(shù)據∞£庫查詢,盡可(kě)能(néng)使用(yòng)緩存↓,以及其它。
3、不(bù)要(yào)在文(wén)件(jiàn)末尾使用(yòng) P¥₽™≠HP 閉合标簽
你(nǐ)可(kě)以看(kàn)一(yī)δ♦'看(kàn),當一(yī)個(gè)文(wén)件(jiàn)以 PHσ≥P 代碼結尾時(shí),WordPress 多(duō)數(shΩ↓&ù)核心代碼都(dōu)把末尾的(de)•α→λ PHP 标簽去(qù)掉了(le)。實際上(shàng &),Zend 框架特别禁止了(le)它。PHP 并≤"✔不(bù)需要(yào)文(wén)件(jiàn)末尾的(de)閉合 β标簽,并且我們可(kě)以通(tōng)過去(qù)掉它'<λ∑來(lái)保證不(bù)會(huì)在γφ後面添加任何的(de)空(kōng)白(bái)字符。
4、不(bù)要(yào)做(zuò)不(bù)必要(yào→€♦★)的(de)引用(yòng)傳遞
我個(gè)人(rén)不(bù)喜歡引用(yòng)傳遞。我知(zαΩ™hī)道(dào)有(yǒu)時(shí)候它很(γ∏ <hěn)實用(yòng),但(dàn)是(shì)其它情況下(xià)它使代÷±™ 碼變得(de)難懂(dǒng),并且更難預測結果。
據說(shuō)一(yī)些(xiē)人(rén)認為(wèi)它使代碼運行₹™∑↕(xíng)更快(kuài),但(dàn)是(shì)根據一(yī≥÷)些(xiē) PHP 高(gāo)級程序員(yuán) "♥∞所說(shuō),這(zhè)并不(bù)正确。
說(shuō)明(míng)引用(yòng)為(wèi)什(shé∞∑n)麽不(bù)好(hǎo)的(de)一(yī)個(gè)例子(zǐ)>♦是(shì),PHP 內(nèi)建了(le)shuffle()和(héπ<)sort()。它們修改原始數(shù)組,而不↕₹(bù)是(shì)返回處理(lǐ)後的>λ(de)數(shù)組,這(zhè)很(hěn)不(bù)合邏<•♠δ輯。
5、不(bù)要(yào)在循環中執行(xíng)查>♥♥詢
在循環中執行(xíng)查詢非常浪費(fèi)。它給你(nǐ)的(d↕δe)系統施加不(bù)必要(yào)的(de€§δ)壓力,并且可(kě)能(néng)能(néng)夠在循環外(w¶$£δài)部更快(kuài)獲得(de)相(xiàng)同結果♦☆。當我遇到(dào)需要(yào)這(zhè)樣的(de)情況時(shγ♦₹↑í),我通(tōng)常會(huì)使用γε©(yòng)兩個(gè)分(fēn)離(lí)的(de)查詢來(lái) ¥∑↕解決問(wèn)題,我會(huì)使用(yòng××± )它們來(lái)構建數(shù)據數(shù)組。之ε±後我會(huì)遍曆數(shù)組,并不(bù)需要(yào)在這(zhè) Ω♥個(gè)過程中執行(xíng)查詢。
由于 WordPress 适用(yòng)于這(zhè)裡(&®lǐ),它可(kě)能(néng)有(yǒu)一(y©←ī)些(xiē)例外(wài)。雖然get_post_meta♥≥>₩() 會(huì)從(cóng)數(shù π)據庫獲取大(dà)量數(shù)據,如(rú)果你(nǐ)正在遍曆某個(g≠$è)特殊博文(wén)的(de)元數(shù)據你(nǐ)←'Ω可(kě)以在循環中使用(yòng)它。這(zhè)是(shì) <因為(wèi)當你(nǐ)第一(yī)次調用(yòng)它的(de)時(shπí)候,WordPress實際上(shàng)×£®會(huì)獲取所有(yǒu)元數(shù)據并緩存它們。後續的(de)Ω∞ Ω調用(yòng)使用(yòng)這(zhè)些(x₹✘¥iē)緩存數(shù)據,沒有(yǒu)數(shù)據庫☆∞ ∑的(de)調用(yòng)。
弄懂(dǒng)這(zhè)些(xiē)的(de)最佳方式是≠(shì)閱讀(dú)函數(shù)文(wén)檔,以及使用Ω'₽(yòng)類似 Query Monitor 的✔↕(de)工(gōng)具。
6、不(bù)要(yào)在 SQL 查詢中使用(yòn ↑×♠g)*
當然,這(zhè)個(gè)更像 MySQL 的(de)問(wèn)÷ Ω題,但(dàn)是(shì)我們習(xí)慣在 PHP 中編寫 "↑SQL 代碼,所以都(dōu)差不(bù)多(duō)。無論如(rú)何,™φ£$如(rú)果可(kě)以避免的(de)話(huà),不(b§×< ù)要(yào)在 SQL 查詢裡(lǐ)使用(yòng)通←♦(tōng)配符,尤其是(shì)數(shù☆γ→§)據庫有(yǒu)很(hěn)多(duō)列的(de)時(shí)候。π€
你(nǐ)應該明(míng)确指定需要(yào)哪些(xiē© )行(xíng),并且僅僅獲取它們。這( πzhè)有(yǒu)助于減少(shǎo)所用(yòng)資源,保護數(♦Ωshù)據,以及讓事(shì)情變得(de)盡可(k •λě)能(néng)清晰。
對(duì)于 SQL,你(nǐ)需要(yào)了(le)解所有(y→✔≈ǒu)可(kě)用(yòng)的(de)函數(shù<γ),并且盡可(kě)能(néng)測試其速度。<©♦♣在計(jì)算(suàn)均值、求和(hé)或計(jì)算 <(suàn)類似數(shù)值時(shí),要₩π(yào)使用(yòng) SQL 函數(shù)而不(bù)是(Ω←shì) PHP 函數(shù)。如(rú)果你(nǐ)不(bù)确定♥÷↓某個(gè)查詢的(de)速度,測試它并且嘗試一(yī)些(x¥→iē)其它的(de)編譯 -- 之後使用(yòn↕γ 'g)最好(hǎo)的(de)那(nà)個(gè)。
7、不(bù)要(yào)信任用(yòng)戶輸入
信任用(yòng)戶輸入是(shì)不(bù)明(míng)智的(de)。始終€<π™校(xiào)驗、過濾、轉義、檢查并留好(>×∏×hǎo)退路(lù)。用(yòng)戶數(shù)據存在三個(gè)問(wè↑β∞↓n)題:我們開(kāi)發者并沒有(yǒu)考慮每種可(kě)能(né>×∞↑ng)性,它通(tōng)常不(bù)正确,以及它可(kě)能(nσ≤¥±éng)是(shì)蓄意破壞。
經過周密考慮的(de)系統可(kě)以防護這(zhè"•)些(xiē)威脅。要(yào)确保使用(δ∑yòng)類似filter_var()的(de)內(nèi)建函數(sh✘≥©ù)檢查适當的(de)值,以及在處理(lǐ)數(shù)據庫時(shí↔≈'♥)轉義(或預編譯)。
WordPress 擁有(yǒu)一(yī)些(xiē)函數(★∑shù)來(lái)解決問(wèn)題。詳見(jiàn)文(α€wén)章(zhāng)校(xiào)驗、轉義和(hé)過濾用(yòng)戶數≥₽(shù)據。
8、不(bù)要(yào)故作(zuò)聰明(míng)✔
你(nǐ)的(de)目标應該是(shì)編寫優雅的(de)代碼×π©,來(lái)更清晰地(dì)表達你(nǐ)的(de)意圖。你(nǐ)可(k§★ě)能(néng)能(néng)夠通(tōng)過将任何東✔¶€±(dōng)西(xī)縮短(duǎn)為(wèi)一(≠&yī)個(gè)單詞的(de)變量,使用(yòng↔✔∑)多(duō)層的(de)三元邏輯,以及其它手段,從(c∞✔÷óng)每個(gè)頁面中優化(huà) 0.01 秒(miǎo)。但(dà≈∞π☆n)這(zhè)隻會(huì)給你(nǐ)和(hé)你(nǐ₹÷₹)周圍的(de)人(rén)産生(shēng)大(dà)麻煩。
合理(lǐ)命名變量,為(wèi)代碼編寫文(wén)檔δσ÷,優先選擇清晰而不(bù)是(shì)簡潔。甚至還(hái)可(kě)以®>£★更好(hǎo),使用(yòng)标準的(de)面向₩★↔✔對(duì)象代碼,它本身(shēn)或多(duō)或£±↕少(shǎo)就(jiù)是(shì)文(wén)檔,不(bù)需要(yào)₹$£₽一(yī)大(dà)堆內(nèi)聯數(shù)值。
9、不(bù)要(yào)重新發明(míng)輪子(zǐ)
PHP 到(dào)現(xiàn)在為(wèi)止有(yǒu)很(hěn)→↔長(cháng)時(shí)間(jiān)™δ了(le),網站(zhàn)被造出來(lái)的(de)時(shí)間(ji∏ε₽∑ān)更長(cháng)。很(hěn)可(kě)能(néng)無論你(∏₩nǐ)需要(yào)造出什(shén)麽↓♦♣<,一(yī)些(xiē)人(rén)之前早就(→♥×§jiù)造出來(lái)了(le)。不(bù)要(yào) ≈害怕向他(tā)人(rén)尋求支持,Github是(shì)你(nǐ)的€φ(de)好(hǎo)朋(péng)友(yǒu),Compos×γer也(yě)是(shì),Packagist也(yě)是(shì)。₽&
從(cóng)日(rì)志(zhì)工(gō♣₹< ng)具到(dào)調色工(gōng)具,從(cóng)性能(néng)分←≈(fēn)析器(qì)到(dào)單元測試框架,從(¶$λcóng) Mailchimp API 到(dào)∑ Twitter Bootstrap,每個→' (gè)東(dōng)西(xī)都(dōu)可(kě∞ )以通(tōng)過按下(xià)按鍵(或者敲下(xià)命 ♣$令)來(lái)獲取,使用(yòng)它們吧(ba)!
10、不(bù)要(yào)忽略其它語言
如(rú)果你(nǐ)是(shì)個(gè) ♦↓PHP 程序員(yuán),現(xiàn)在有(yǒu)個(gè)好(hπ♦ǎo)機(jī)會(huì)去(qù)至少(shǎo)π↓₽了(le)解 HTML、CSS、JavaScript 和(hé) My>¥SQL。當你(nǐ)能(néng)夠更好(h×✔ ǎo)地(dì)處理(lǐ)這(zhè)些(xiē)語言時(shí$Ω£♥),就(jiù)是(shì)重新學習(xí) JavaScript 的(d ♦e)時(shí)機(jī)了(le)。JavaScriΩ₩ ₽pt 并不(bù)是(shì) jQuer≠©σy,你(nǐ)應該合理(lǐ)地(dì)學習(xí) JavaScript 來✘λ≠×(lái)更高(gāo)效地(dì)使用(yòng)它。φσ♥↑
我也(yě)打算(suàn)向你(nǐ)推薦學習(xí)面向對(duì)象的(€€♣de) PHP,它可(kě)以節省時(shí)間(jiān),并且§®¶σ在代碼規模更大(dà)時(shí)會(huì)變得★↕π(de)更好(hǎo)。對(duì)于類似 C# 和(hé) Java 的(★♣de)語言,在你(nǐ)了(le)解 OOP 之後,它們也(yě)更易β♠±于理(lǐ)解。
通(tōng)過了(le)解包管理(lǐ)器(qì)、構建腳本、Coffe₽₽£eScript、LESS、SASS、YAML •✔♠、腳本引擎和(hé)其它強大(dà)的(de)工(gōng)具來(lái)擴®♠展你(nǐ)的(de)知(zhī)識面。我強烈向你(nǐ)推薦看(απ★←kàn)一(yī)看(kàn)其它框架,尤其是δ→★(shì) Laravel。
當你(nǐ)使用(yòng)它們出色完成任務時(shí),學習(xí) RuΩ→by、RoR、Android、iPhone 和(hé) Window★✘εs Phone 應用(yòng)開(kāi)發如(rαπ↓✘ú)何?你(nǐ)可(kě)能(néng)會(huì)認δ★為(wèi)這(zhè)毫無意義,因為(wèi)它們在你(nǐ)的(de♥φ↓)舒适區(qū)和(hé)工(gōng)作(zuò)所需範圍之外(wài),σ✔但(dàn)是(shì)這(zhè)就(jiù)是(λ≈∏shì)它們的(de)意義。每種語言都(dōu)有(y ǒu)一(yī)些(xiē)要(yào)學習(xí)的(de •)實用(yòng)的(de)東(dōng)西(xī)&&,以及從(cóng)沒碰到(dào)的(de)新知γ∞&β(zhī)識。所有(yǒu) PHP 頂級♠β&♣開(kāi)發者都(dōu)懂(dǒng)得(de)很(hěn)多(du©&÷ō)其它編程語言,這(zhè)并非偶然。
這(zhè)一(yī)天終于來(lái)了(le),從(cóng)此你(n∑₹βǐ)不(bù)僅僅“不(bù)應該”使用(yòng)mysql_函數(sh ≥ ù)。PHP 7 已經把它們從(cóng)核心中全部移除了(le)↔♠↔π,也(yě)就(jiù)是(shì)說(shuō)你(nǐ)需要(y•ào)遷移到(dào)好(hǎo)得(de)多(duōπφ)的(de)mysqli_函數(shù)↑,或者更靈活的(de) PDO 實現(xiàn)。
2、不(bù)要(yào)編寫垃圾代碼
這(zhè)一(yī)條可(kě)能(néng)易于理(lǐ)解¥£,但(dàn)是(shì)會(huì)變得(de)越來(lái)越重要(y☆¥αào),因為(wèi) PHP 7 的(de)速度提升可(kě)能≠±"(néng)會(huì)隐藏你(nǐ)的(de)一(yī)些(xiē)問(wè®β→•n)題。不(bù)要(yào)僅僅滿足于你(nǐ)的(de)站δ≥(zhàn)點速度,因為(wèi)遷移到(dào) PH≥®P 7 才讓它變快(kuài)。
為(wèi)了(le)理(lǐ)解速度有(yǒu)多(duō)重要(yào)→™≈∏,以及如(rú)何把事(shì)情做(zuò)得(d"¥φ∏e)更好(hǎo),請(qǐng)看(kàn)一(yī)看(kàn€₽♣♥)我們的(de)文(wén)章(zhāng)速度優化(¶★εhuà)入門(mén)指南(nán)。
作(zuò)為(wèi)一(yī)名開("→$ kāi)發者,你(nǐ)應該總是(shì)确保按需加載腳本,盡可(∏ελ↑kě)能(néng)連接它們,編寫高(gāo)效的(de)數(shù)據∞£庫查詢,盡可(kě)能(néng)使用(yòng)緩存↓,以及其它。
3、不(bù)要(yào)在文(wén)件(jiàn)末尾使用(yòng) P¥₽™≠HP 閉合标簽
你(nǐ)可(kě)以看(kàn)一(yī)δ♦'看(kàn),當一(yī)個(gè)文(wén)件(jiàn)以 PHσ≥P 代碼結尾時(shí),WordPress 多(duō)數(shΩ↓&ù)核心代碼都(dōu)把末尾的(de)•α→λ PHP 标簽去(qù)掉了(le)。實際上(shàng &),Zend 框架特别禁止了(le)它。PHP 并≤"✔不(bù)需要(yào)文(wén)件(jiàn)末尾的(de)閉合 β标簽,并且我們可(kě)以通(tōng)過去(qù)掉它'<λ∑來(lái)保證不(bù)會(huì)在γφ後面添加任何的(de)空(kōng)白(bái)字符。
4、不(bù)要(yào)做(zuò)不(bù)必要(yào→€♦★)的(de)引用(yòng)傳遞
我個(gè)人(rén)不(bù)喜歡引用(yòng)傳遞。我知(zαΩ™hī)道(dào)有(yǒu)時(shí)候它很(γ∏ <hěn)實用(yòng),但(dàn)是(shì)其它情況下(xià)它使代÷±™ 碼變得(de)難懂(dǒng),并且更難預測結果。
據說(shuō)一(yī)些(xiē)人(rén)認為(wèi)它使代碼運行₹™∑↕(xíng)更快(kuài),但(dàn)是(shì)根據一(yī≥÷)些(xiē) PHP 高(gāo)級程序員(yuán) "♥∞所說(shuō),這(zhè)并不(bù)正确。
說(shuō)明(míng)引用(yòng)為(wèi)什(shé∞∑n)麽不(bù)好(hǎo)的(de)一(yī)個(gè)例子(zǐ)>♦是(shì),PHP 內(nèi)建了(le)shuffle()和(héπ<)sort()。它們修改原始數(shù)組,而不↕₹(bù)是(shì)返回處理(lǐ)後的>λ(de)數(shù)組,這(zhè)很(hěn)不(bù)合邏<•♠δ輯。
5、不(bù)要(yào)在循環中執行(xíng)查>♥♥詢
在循環中執行(xíng)查詢非常浪費(fèi)。它給你(nǐ)的(d↕δe)系統施加不(bù)必要(yào)的(de€§δ)壓力,并且可(kě)能(néng)能(néng)夠在循環外(w¶$£δài)部更快(kuài)獲得(de)相(xiàng)同結果♦☆。當我遇到(dào)需要(yào)這(zhè)樣的(de)情況時(shγ♦₹↑í),我通(tōng)常會(huì)使用γε©(yòng)兩個(gè)分(fēn)離(lí)的(de)查詢來(lái) ¥∑↕解決問(wèn)題,我會(huì)使用(yòng××± )它們來(lái)構建數(shù)據數(shù)組。之ε±後我會(huì)遍曆數(shù)組,并不(bù)需要(yào)在這(zhè) Ω♥個(gè)過程中執行(xíng)查詢。
由于 WordPress 适用(yòng)于這(zhè)裡(&®lǐ),它可(kě)能(néng)有(yǒu)一(y©←ī)些(xiē)例外(wài)。雖然get_post_meta♥≥>₩() 會(huì)從(cóng)數(shù π)據庫獲取大(dà)量數(shù)據,如(rú)果你(nǐ)正在遍曆某個(g≠$è)特殊博文(wén)的(de)元數(shù)據你(nǐ)←'Ω可(kě)以在循環中使用(yòng)它。這(zhè)是(shì) <因為(wèi)當你(nǐ)第一(yī)次調用(yòng)它的(de)時(shπí)候,WordPress實際上(shàng)×£®會(huì)獲取所有(yǒu)元數(shù)據并緩存它們。後續的(de)Ω∞ Ω調用(yòng)使用(yòng)這(zhè)些(x₹✘¥iē)緩存數(shù)據,沒有(yǒu)數(shù)據庫☆∞ ∑的(de)調用(yòng)。
弄懂(dǒng)這(zhè)些(xiē)的(de)最佳方式是≠(shì)閱讀(dú)函數(shù)文(wén)檔,以及使用Ω'₽(yòng)類似 Query Monitor 的✔↕(de)工(gōng)具。
6、不(bù)要(yào)在 SQL 查詢中使用(yòn ↑×♠g)*
當然,這(zhè)個(gè)更像 MySQL 的(de)問(wèn)÷ Ω題,但(dàn)是(shì)我們習(xí)慣在 PHP 中編寫 "↑SQL 代碼,所以都(dōu)差不(bù)多(duō)。無論如(rú)何,™φ£$如(rú)果可(kě)以避免的(de)話(huà),不(b§×< ù)要(yào)在 SQL 查詢裡(lǐ)使用(yòng)通←♦(tōng)配符,尤其是(shì)數(shù☆γ→§)據庫有(yǒu)很(hěn)多(duō)列的(de)時(shí)候。π€
你(nǐ)應該明(míng)确指定需要(yào)哪些(xiē© )行(xíng),并且僅僅獲取它們。這( πzhè)有(yǒu)助于減少(shǎo)所用(yòng)資源,保護數(♦Ωshù)據,以及讓事(shì)情變得(de)盡可(k •λě)能(néng)清晰。
對(duì)于 SQL,你(nǐ)需要(yào)了(le)解所有(y→✔≈ǒu)可(kě)用(yòng)的(de)函數(shù<γ),并且盡可(kě)能(néng)測試其速度。<©♦♣在計(jì)算(suàn)均值、求和(hé)或計(jì)算 <(suàn)類似數(shù)值時(shí),要₩π(yào)使用(yòng) SQL 函數(shù)而不(bù)是(Ω←shì) PHP 函數(shù)。如(rú)果你(nǐ)不(bù)确定♥÷↓某個(gè)查詢的(de)速度,測試它并且嘗試一(yī)些(x¥→iē)其它的(de)編譯 -- 之後使用(yòn↕γ 'g)最好(hǎo)的(de)那(nà)個(gè)。
7、不(bù)要(yào)信任用(yòng)戶輸入
信任用(yòng)戶輸入是(shì)不(bù)明(míng)智的(de)。始終€<π™校(xiào)驗、過濾、轉義、檢查并留好(>×∏×hǎo)退路(lù)。用(yòng)戶數(shù)據存在三個(gè)問(wè↑β∞↓n)題:我們開(kāi)發者并沒有(yǒu)考慮每種可(kě)能(né>×∞↑ng)性,它通(tōng)常不(bù)正确,以及它可(kě)能(nσ≤¥±éng)是(shì)蓄意破壞。
經過周密考慮的(de)系統可(kě)以防護這(zhè"•)些(xiē)威脅。要(yào)确保使用(δ∑yòng)類似filter_var()的(de)內(nèi)建函數(sh✘≥©ù)檢查适當的(de)值,以及在處理(lǐ)數(shù)據庫時(shí↔≈'♥)轉義(或預編譯)。
WordPress 擁有(yǒu)一(yī)些(xiē)函數(★∑shù)來(lái)解決問(wèn)題。詳見(jiàn)文(α€wén)章(zhāng)校(xiào)驗、轉義和(hé)過濾用(yòng)戶數≥₽(shù)據。
8、不(bù)要(yào)故作(zuò)聰明(míng)✔
你(nǐ)的(de)目标應該是(shì)編寫優雅的(de)代碼×π©,來(lái)更清晰地(dì)表達你(nǐ)的(de)意圖。你(nǐ)可(k§★ě)能(néng)能(néng)夠通(tōng)過将任何東✔¶€±(dōng)西(xī)縮短(duǎn)為(wèi)一(≠&yī)個(gè)單詞的(de)變量,使用(yòng↔✔∑)多(duō)層的(de)三元邏輯,以及其它手段,從(c∞✔÷óng)每個(gè)頁面中優化(huà) 0.01 秒(miǎo)。但(dà≈∞π☆n)這(zhè)隻會(huì)給你(nǐ)和(hé)你(nǐ₹÷₹)周圍的(de)人(rén)産生(shēng)大(dà)麻煩。
合理(lǐ)命名變量,為(wèi)代碼編寫文(wén)檔δσ÷,優先選擇清晰而不(bù)是(shì)簡潔。甚至還(hái)可(kě)以®>£★更好(hǎo),使用(yòng)标準的(de)面向₩★↔✔對(duì)象代碼,它本身(shēn)或多(duō)或£±↕少(shǎo)就(jiù)是(shì)文(wén)檔,不(bù)需要(yào)₹$£₽一(yī)大(dà)堆內(nèi)聯數(shù)值。
9、不(bù)要(yào)重新發明(míng)輪子(zǐ)
PHP 到(dào)現(xiàn)在為(wèi)止有(yǒu)很(hěn)→↔長(cháng)時(shí)間(jiān)™δ了(le),網站(zhàn)被造出來(lái)的(de)時(shí)間(ji∏ε₽∑ān)更長(cháng)。很(hěn)可(kě)能(néng)無論你(∏₩nǐ)需要(yào)造出什(shén)麽↓♦♣<,一(yī)些(xiē)人(rén)之前早就(→♥×§jiù)造出來(lái)了(le)。不(bù)要(yào) ≈害怕向他(tā)人(rén)尋求支持,Github是(shì)你(nǐ)的€φ(de)好(hǎo)朋(péng)友(yǒu),Compos×γer也(yě)是(shì),Packagist也(yě)是(shì)。₽&
從(cóng)日(rì)志(zhì)工(gō♣₹< ng)具到(dào)調色工(gōng)具,從(cóng)性能(néng)分←≈(fēn)析器(qì)到(dào)單元測試框架,從(¶$λcóng) Mailchimp API 到(dào)∑ Twitter Bootstrap,每個→' (gè)東(dōng)西(xī)都(dōu)可(kě∞ )以通(tōng)過按下(xià)按鍵(或者敲下(xià)命 ♣$令)來(lái)獲取,使用(yòng)它們吧(ba)!
10、不(bù)要(yào)忽略其它語言
如(rú)果你(nǐ)是(shì)個(gè) ♦↓PHP 程序員(yuán),現(xiàn)在有(yǒu)個(gè)好(hπ♦ǎo)機(jī)會(huì)去(qù)至少(shǎo)π↓₽了(le)解 HTML、CSS、JavaScript 和(hé) My>¥SQL。當你(nǐ)能(néng)夠更好(h×✔ ǎo)地(dì)處理(lǐ)這(zhè)些(xiē)語言時(shí$Ω£♥),就(jiù)是(shì)重新學習(xí) JavaScript 的(d ♦e)時(shí)機(jī)了(le)。JavaScriΩ₩ ₽pt 并不(bù)是(shì) jQuer≠©σy,你(nǐ)應該合理(lǐ)地(dì)學習(xí) JavaScript 來✘λ≠×(lái)更高(gāo)效地(dì)使用(yòng)它。φσ♥↑
我也(yě)打算(suàn)向你(nǐ)推薦學習(xí)面向對(duì)象的(€€♣de) PHP,它可(kě)以節省時(shí)間(jiān),并且§®¶σ在代碼規模更大(dà)時(shí)會(huì)變得★↕π(de)更好(hǎo)。對(duì)于類似 C# 和(hé) Java 的(★♣de)語言,在你(nǐ)了(le)解 OOP 之後,它們也(yě)更易β♠±于理(lǐ)解。
通(tōng)過了(le)解包管理(lǐ)器(qì)、構建腳本、Coffe₽₽£eScript、LESS、SASS、YAML •✔♠、腳本引擎和(hé)其它強大(dà)的(de)工(gōng)具來(lái)擴®♠展你(nǐ)的(de)知(zhī)識面。我強烈向你(nǐ)推薦看(απ★←kàn)一(yī)看(kàn)其它框架,尤其是δ→★(shì) Laravel。
當你(nǐ)使用(yòng)它們出色完成任務時(shí),學習(xí) RuΩ→by、RoR、Android、iPhone 和(hé) Window★✘εs Phone 應用(yòng)開(kāi)發如(rαπ↓✘ú)何?你(nǐ)可(kě)能(néng)會(huì)認δ★為(wèi)這(zhè)毫無意義,因為(wèi)它們在你(nǐ)的(de♥φ↓)舒适區(qū)和(hé)工(gōng)作(zuò)所需範圍之外(wài),σ✔但(dàn)是(shì)這(zhè)就(jiù)是(λ≈∏shì)它們的(de)意義。每種語言都(dōu)有(y ǒu)一(yī)些(xiē)要(yào)學習(xí)的(de •)實用(yòng)的(de)東(dōng)西(xī)&&,以及從(cóng)沒碰到(dào)的(de)新知γ∞&β(zhī)識。所有(yǒu) PHP 頂級♠β&♣開(kāi)發者都(dōu)懂(dǒng)得(de)很(hěn)多(du©&÷ō)其它編程語言,這(zhè)并非偶然。
- 上(shàng)一(yī)篇:搭建簡單的(de)PHP運行(xíng)環境
- 下(xià)一(yī)篇:2020最新整理(lǐ)PHP面試題附答(dá)案