優秀的PHP開發者是怎樣煉成的?

2021-09-06 10:59:58 字數 1839 閱讀 9079

4.在資料庫中避免使用聯合操作

比起其它的web程式語言來說,php的資料庫功能十分強大。但是在php中資料庫的執行仍然是一件十分費時費力的事情,所以,作為乙個web程式設計師,要儘量減少資料庫的查詢操作,同時應該為資料庫建立適當的索引。

另一件值得注意的事情是在用php運算元據庫時,盡可能不使用多個資料表的聯合操作,儘管聯合操作可以增強資料庫的查詢功能,但是卻大大增加了伺服器的負擔。為了說明這個問題,我們可以看看下面的這個簡單的例子。

我們在資料庫中建立了兩個資料表foo和big_foo。在資料表foo中,只有乙個字段,包含了從1-1000之間的所有自然數。資料表big_foo同樣只有乙個字段,但包含了從1-1,000,000之間的全部自然數。所以,從大小上說,big_foo等於foo與它自身進行了聯合操作。

$db->query(\"select * from foo\");   

0.032273 secs   

$db->next_record();   

0.00048999999999999 secs   

$db->query(\"insert into foo values (null)\");   

0.019506 secs   

$db->query(\"select * from foo as a, foo as b\");   

17.280596 secs   

$db->query(\"select * from foo as a, foo as b where a.id > b.id\");   

14.645251 secs   

$db->query(\"select * from foo as a, foo as b where a.id = b.id\");   

0.041269 secs   

$db->query(\"select * from big_foo\");   

25.393672 secs 

從上面操作結果我們可以發現,對於兩個有1000條記錄的資料表進行聯合,其速度並不比對乙個1000000條紀錄的大型資料表單獨進行操作快多少。

5.注意include與require的區別

在php變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函式,而require()則是無條件包含函式。例如在下面的乙個例子中,如果變數$somgthing為真,則將包含檔案somefile:

if($something) 

但不管$something取何值,下面的**將把檔案somefile包含進檔案裡:

if($something) 

下面的這個有趣的例子充分說明了這兩個函式之間的不同。

$i = 1;   

while ($i <

3)  

在這段**中,每一次迴圈的時候,程式都將把同乙個檔案包含進去。很顯然這不是程式設計師的初衷,從**中我們可以看出這段**希望在每次迴圈時,將不同的檔案包含進來。如果要完成這個功能,必須求助函式include();

$i = 1;   

while ($i <

3)  

6.注意echo和print的區別

php中echo和print的功能也基本相同,但是兩者之間也有細微差別。在php**中可以把print作為乙個普通函式來使用,例如執行下面的**後變數$res的值將為1。

$ret = print \"hello world\";

這意味著print可用在一些複雜的表示式中,而echo則不行。同樣,在**中echo語句的執行速度要略微快於print語句,因為echo語句不要求返回任何數值。

優秀的開發者 vs 糟糕的開發者

優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。糟糕的開發者只將自己當作負責產生 的碼農。優秀的開發者了解客戶的問題。糟糕的開發者只了解手頭的技術問題。優秀的開發者會不斷努力去理解 為什麼 然後去實現,同時能夠把握大局。糟糕的開發者專注於構建類 方法和配置檔案,而不理會大局。糟糕優秀的開發者了解產...

優秀的開發者 vs 差的開發者

如果你認為使用 優秀 和 差 來區分開發者不妥的話,也可以將這些看作是初級開發者和資深開發者之間的區別。但無論如何,多看看其他的優秀開發者 或資深開發者 是如何做的,對於自身技能 工作方式的提公升有很大的幫助。優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。差的開發者只將自己當作負責產生 的碼農。...

優秀的開發者 VS 糟糕的開發者

優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。差的開發者只將自己當作負責產生 的碼農。優秀的開發者了解客戶的問題。差的開發者只了解手頭的技術問題。優秀的開發者會不斷努力去理解 為什麼 然後去實現,同時能夠把握大局。差的開發者專注於構建類 方法和配置檔案,而不理會大局。優秀的開發者了解產品的完整架...