亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

php語(yǔ)言

怎么使php語(yǔ)言變得簡(jiǎn)潔

時(shí)間:2025-02-24 12:57:39 美云 php語(yǔ)言 我要投稿
  • 相關(guān)推薦

怎么使php語(yǔ)言變得簡(jiǎn)潔

  php語(yǔ)言一直以簡(jiǎn)單易用著稱,那么怎么使php語(yǔ)言變得簡(jiǎn)潔呢?下面是小編精心整理的怎么使php語(yǔ)言變得簡(jiǎn)潔,歡迎閱讀,希望大家能夠喜歡。

  怎么使php語(yǔ)言變得簡(jiǎn)潔

  1. 統(tǒng)一的編碼規(guī)范

  編碼規(guī)范往簡(jiǎn)單說(shuō)其實(shí)就是三個(gè)方面:

  換行

  空格

  變量命名

  放在 PHP 里面,還有一些附加的地方,比如關(guān)鍵字大小寫,語(yǔ)法糖的使用(array() 與 [] 等)的問題。之前整理過 PSR 的標(biāo)準(zhǔn),也找過 php-cs-fixer 這樣的工具。這些都是規(guī)范代碼的重要手段。有統(tǒng)一的標(biāo)準(zhǔn),配合上工具的檢查,形成統(tǒng)一的編碼約束不是什么難題。

  沒有規(guī)范,不同的人甚至同一個(gè)人在空格、換行和命名上都有可能是十分隨意的。代碼一長(zhǎng),回使整個(gè)文件看起來(lái)無(wú)比雜亂。

  典型的例子比如:if 和 else 的組合,可以寫出無(wú)數(shù)種風(fēng)格,比如:

  這里并不探討各種寫法的優(yōu)缺點(diǎn),只是風(fēng)格需要保持統(tǒng)一,不要混用。

  2. 良好的編碼習(xí)慣

  如果你仔細(xì)看過 PSR 的標(biāo)準(zhǔn),可能也會(huì)注意到某些地方其實(shí)是標(biāo)準(zhǔn)無(wú)法涉及到的。比如一個(gè)超長(zhǎng)的表達(dá)式在什么時(shí)候換行,如何縮進(jìn)等。

  這里涉及到的就是編碼習(xí)慣的約束問題。

  比如方法的鏈?zhǔn)降恼{(diào)用的問題,比如某些數(shù)據(jù)庫(kù)查詢的封裝:

  3. 尋找最優(yōu)的寫法

  寫代碼的過程中,最優(yōu)的寫法和編碼習(xí)慣又不是同一件事情。這里要說(shuō)的指的是如何遵循 PHP 的語(yǔ)言特性或者框架的特征,充分發(fā)揮語(yǔ)言和框架的能力來(lái)減少冗余。

  比如在獲取前端傳入的參數(shù)的時(shí)候,很多時(shí)候能見到這樣的代碼:

  $param = isset($_POST[param]) ? $_POST[param] : ;

  更有甚者一些框架將前端傳入的參數(shù)封裝了一層,比如 $this->request->data[param],如果再去用 isset 或者 array_key_exists 判斷,整個(gè)獲取參數(shù)的語(yǔ)句就會(huì)變得很長(zhǎng)。

  某些情況下使用三元運(yùn)算符的時(shí)候需要注意 ?: 是可以合并使用的。

  其實(shí)我們應(yīng)該去嘗試封裝這種寫法,防止同樣的變量出現(xiàn)在一個(gè)語(yǔ)句中多次的情況。對(duì)于默認(rèn)值的賦予,可以調(diào)研框架是否有封裝提供,或者通過強(qiáng)制類型轉(zhuǎn)換的方式進(jìn)行。

  還有一種情況是條件和循環(huán)嵌套的時(shí)候。比如從數(shù)組里抽取某一個(gè)字段,或者對(duì)某一個(gè)字段的值進(jìn)行處理的時(shí)候,善用 array_map 以及引用(&)往往能節(jié)省不少工作量。但是使用的時(shí)候也要注意數(shù)組指針最后的位置。

  在根據(jù)條件返回結(jié)果時(shí),需要善用 return。還有就是合理的抽象與封裝。

  4. review 自己的代碼

  除了以上提到的在日常開發(fā)中需要注意的一些問題。還有就是事后的工作。

  我相信很多人在看自己以前的代碼的時(shí)候都有一種其實(shí)有更好的寫法的感覺。隨著時(shí)間的推移自己總會(huì)有更豐富的閱歷,更多的想法。偶爾 review 自己的代碼也是對(duì)過去的總結(jié),也許會(huì)有新的感知。

  5. 推廣給你的隊(duì)友

  團(tuán)隊(duì)項(xiàng)目中,隊(duì)友的配合對(duì)整個(gè)代碼的規(guī)范起著決定性的作用。一個(gè)團(tuán)隊(duì)中有一個(gè)人不遵守規(guī)范,而又要到處修改代碼的時(shí)候,很快就能破壞到所有的約束。

  有統(tǒng)一的標(biāo)準(zhǔn),有良好的執(zhí)行力才能完成這件工作。

  令PHP語(yǔ)言更加簡(jiǎn)潔的編碼小技巧

  數(shù)組轉(zhuǎn)化

  我們常常需要在一個(gè)函數(shù)里面接受一個(gè)支持字符串或者數(shù)組類型數(shù)據(jù)的參數(shù)?梢允褂眠m當(dāng)?shù)念愋娃D(zhuǎn)化方式將字符串類型轉(zhuǎn)化成數(shù)組類型,來(lái)取代類型檢測(cè)。

  當(dāng)然這看起來(lái)沒什么區(qū)別,只是節(jié)省了一行代碼而已。但是你可以設(shè)想一下,當(dāng)你使用復(fù)雜的循環(huán)結(jié)構(gòu)或者嵌套數(shù)組處理大量數(shù)據(jù)時(shí)。這樣做將會(huì)有意義,它能使代碼保持簡(jiǎn)潔。

  類型檢查

  類型檢查也是一項(xiàng)讓代碼更簡(jiǎn)潔的技巧。一個(gè)小的類型檢查可以節(jié)省幾行代碼,有些時(shí)候,還可以為你的參數(shù)提供更多的靈活性。

  在這個(gè)例子里,我們可以在一行里面檢查參數(shù)類型,所以我們不需要處處都寫 if-else 語(yǔ)句。這里的參數(shù)有多種可能,可以是一個(gè) Team 實(shí)例,也可以是一個(gè)整數(shù)。

  重構(gòu)長(zhǎng) If 語(yǔ)句

  有時(shí)候,在執(zhí)行動(dòng)作之前我們需要做一些條件檢查。但是,隨著我們的應(yīng)用的持續(xù)增長(zhǎng),if 語(yǔ)句會(huì)變得越來(lái)越長(zhǎng)。所以,我們需要考慮重構(gòu)。一個(gè)小例子:

  注意,第一個(gè)例子運(yùn)行方式與第二個(gè)有一些不同。第一個(gè)例子中,只要有一個(gè)條件為真,則后面的條件就會(huì)被忽略,在一些情況下,它會(huì)更快。謝謝 Zois Pag 的建議。

  這兩個(gè)例子的結(jié)果是一樣的,但是第二個(gè)更整潔。我們可以不再使用 || 操作符,并且只引用了 $a 變量一次。

  去掉不必要的 if 語(yǔ)句

  一個(gè)普遍的錯(cuò)誤,我們會(huì)經(jīng)常性的過度使用 if-else 語(yǔ)句。當(dāng)然,有些時(shí)候它是不可省略的,但也有些情況,我們不需要用到它。

  但是邏輯顛倒了怎么辦? 那么, 如果條件是true我們又想返回 false 該怎么辦? 當(dāng)然,在 if 語(yǔ)句中,我們僅需要相反的 true 和 false ,但是在重構(gòu)的版本中,我們會(huì)有一個(gè)相對(duì)輕松的工作。只需要在你驗(yàn)真假的時(shí)候加上 ! 運(yùn)算符。它將返回顛倒后的結(jié)果。

  總結(jié)

  每天我們都能發(fā)現(xiàn)一些充滿了過度復(fù)雜邏輯的方案和代碼,長(zhǎng)期來(lái)看,這對(duì)開發(fā)者和產(chǎn)品本身都不好。上文中,我們只是嘗試搜集了一些例子,在這些例子里,你只需做出一點(diǎn)小的努力,就可以讓你的代碼變得更好更簡(jiǎn)潔。

【怎么使php語(yǔ)言變得簡(jiǎn)潔】相關(guān)文章:

php語(yǔ)言04-07

php語(yǔ)言現(xiàn)在學(xué)習(xí)怎么樣08-09

Php語(yǔ)言的發(fā)展前景怎么樣02-01

php語(yǔ)言發(fā)展前景怎么樣03-01

php語(yǔ)言編程07-06

php語(yǔ)言簡(jiǎn)介04-28

什么是php語(yǔ)言12-01

php語(yǔ)言的優(yōu)勢(shì)03-03

PHP語(yǔ)言的簡(jiǎn)介05-02

PHP語(yǔ)言介紹05-22