對于PHP程序員而言,一些常見的編寫方法早就爛熟于心,但是隨著時間的推移,這些方法可能已經(jīng)變得有點陳舊了。是否可以減少編寫樣板代碼而不失整體性呢?這就是本文討論的問題。
一個PHP典型的樣板代碼塊就是:驗證表單數(shù)據(jù),如果存在一個,就把它添加到數(shù)據(jù)庫中。這通常會涉及到一些if-else語句,這就使整個流程變得臃腫。現(xiàn)在,我們可以使用一種非常便利的技巧,將其簡化為一行代碼。
$db->insert('user', [ 'email' => $email, 'name' => $name ]);
上述代碼使用了一種PHP新的語法結(jié)構(gòu):數(shù)組、模板、屬性。在其中,屬性名稱作為鍵名,屬性值作為鍵值。同時,代碼中使用了一個單獨的函數(shù),它接受一個指定數(shù)據(jù)表和數(shù)據(jù)數(shù)組的參數(shù)。這使得在驗證表單數(shù)據(jù)之后,插入數(shù)據(jù)庫變得更加簡單。
使用這種語法結(jié)構(gòu)最好的事情之一就是不需要處理大量的if-else語句。以前,我們需要判斷一個行是否存在,然后在程序中進行各種處理。但是現(xiàn)在,我們可以完全擺脫這個繁瑣的流程,使代碼更加簡單。
PHP 7引入了一種新特性,通過引用參數(shù)僅作為返回值的聲明,我們可以避免在函數(shù)調(diào)用中創(chuàng)建臨時變量。這看起來不像是性能問題,但是可以提高代碼的可讀性和整體性能。
function sum(int $a, int $b, int &$c): void { $c = $a + $b; } $a = 1; $b = 2; $c = 0; sum($a, $b, $c); var_dump($c); // int(3)
上面的代碼塊中的$c參數(shù)被聲明為引用參數(shù),當(dāng)我們在sum函數(shù)中給它賦值時,會為變量本身賦值,而不是在函數(shù)體中創(chuàng)建一個臨時變量。
最后的結(jié)論是,使用PHP免去編寫樣板代碼的方法有很多。上述塊給出了示例,但這只是一個很小的部分。PHP是一種非常強大的編程語言,具有很多有用的特性可以使代碼變得具有可讀性、清晰明了,并清除樣板代碼的繁瑣。