程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 怎樣的PHP代碼才算優秀

怎樣的PHP代碼才算優秀

編輯:關於PHP編程

優秀的PHP代碼應該是結構化的。大段的代碼應該被分割整理成一個個函數、方法,而那些不起眼的小段代碼則應該加上注釋,以便日後清楚它們的用途。而且應該盡可能地把前台代碼如HTML、CSS、Javascript等從程序中分離出來。PHP的面向對象編程特性可以很好地幫助程序員將代碼整理有序。

優秀的PHP代碼應該是規范化的。無論是為變量名和函數名設定命名規則,還是對一些會重復使用的過程如數據庫操作和錯誤處理進行標准化,抑或是簡單到規定好代碼是怎樣縮進的,這些規范化都可以讓代碼的可讀性大大提高。

優秀的PHP代碼應該是自適應的。PHP有許多特性如magic quotes和short tags,這些特性的打開和關閉會影響到程序的運行。所以,一個好的程序員應該在他的代碼中加如適當的語句來使程序能夠根據環境進行調整。

優秀的PHP代碼應該是安全的。雖然PHP是一種高效、靈活的語言,沒有固定的框架,但卻把安全問題留給了程序員們。對潛在安全漏洞的深刻理解,如跨站腳本攻擊(XSS)、跨站請求偽造(CSRF)、代碼注入漏洞、字符編碼循環漏洞等,對於今天的專業程序員來說是至關重要的。

當應聘者在回答這些問題的時候,我就能清楚地知道是否該錄用他。當然,有時程序員並不能很好地闡明這個問題,這時我們會讓他們做一些PHP測試。測試中的許多問題表面上看起來非常簡單,但這也給了應聘者們一個展現自我的機會,因為只要觀察得仔細,就能找出問題。

下面這一小段“劣質”的PHP代碼是一道簡化了的測試題。這種問題就像在問:你該怎樣優化這段代碼?

<?
echo("<p>Search results for query: " .
$_GET['query'] . ".</p>");
?>

這段代碼的主要問題在於它把用戶提交的數據直接顯示到了網頁上,從而產生XSS漏洞。其實有很多方法可以填補這個漏洞。那麼,什麼代碼是我們想要的呢?

<?
echo("<p>Search results for query: " .
htmlspecialchars($_GET['query']) . ".</p>");
?>

這是最低要求。XSS漏洞用htmlspecialchars函數填補了,從而屏蔽了非法字符。

<?php  
if (isset($_GET['query']))  
{  
   echo '<p>Search results for query: ',  
   htmlspecialchars($_GET['query'], ENT_QUOTES), '.</p>';  
}  
?> 

能寫出這樣代碼的人應該是我想要錄用的人了。

  • <?被替換成了<?php,這樣更符合XML規范。
  • 在輸出$_GET['query']的值之前先判斷它是否為空。
  • echo命令中多余的括號被去掉了。
  • 字符串用單引號限定,從而節省了PHP從字符串中搜索可替換的變量的時間。
  • 用逗號代替句號,節省了echo的時間。
  • 將ENT_QUOTES標識傳遞給htmlspecialchars函數,從而保證單引號也會被轉義。雖然這並是最主要的,但也算是一個良好習慣。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved