1. 데이터 출력 부분
- print보다는 echo가 빠르다.(참고)
- concatenation시에 double quotes(")보다는 Single quotes (')가 빠르다.(참고)
예) echo "내이름은 $name";보다는 '내이름은 ' . $name; 를 사용
- concatenation시에 string concatenation보다는 multiple parameters 방식을 사용하라(참고)
예) echo '변수의' . '값은' . $variable . '입니다.'; 보다는 echo '변수의', '값은', $variable, '입니다.';를 사용하라
2. Loops와 Counting
- for loop구문에서 max값은 미리 지정하라(참고)
예) for ($i = 0; $i < count($array); $i++) 보다는 $max = count($array);for ($i = 0; $i < $max; $i++)방식을 사용하라
- strlen보다는 isset을 사용하라(참고)
- 증가 pre-incrementing 방식을 사용하라(참고)
예) $i++; 보다는 ++$i;
3. Variables과 Functions
- array를 사용할 경우 free memory를 작업을 처리하기 위해 Unset or null을 사용하라(참고)
예)
-
$text = $text.$row;
-
$i++;
-
if ($i > 5000) {
-
$text = $row;
-
$i = 0;
-
}
-
endwhile;
- require_once()보다는 require()를 사용하라(참고)
- includes and require를 사용할 경우 전체 경로를 지정하라(참고)
예) include('test.php'); 보다는 include('http://www.mimul.com/test.php');
- "switch/case"문 보다는 "else if" 문을 사용하라(참고)
4. 그 외
- @는 속도가 느려서 사용하지마라(참고)
예) $variable = @$variable1; 보다는
if (isset($variable1)) $variable = $variable1;
else $variable = NULL; 사용하라
- , <% ..%>보다는 tags를 사용하라(참고)
- mysql_real_escape_string응 사용하라(참고)
- $_POST, $_SERVER 등의 변수 보다는 mysql_real_escape_string, htmlspecialchars를 사용하라. 사용을 한다면 보안 이슈가 발생한다.
예) echo htmlspecialchars("Test", ENT_QUOTES);와
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password)); 같은 방식을 사용하라
- 패스워드 사용시에는 평문을 사용하지 말고 해쉬 함수를 사용하라(참고)
예) $user_password = 'testest';
if (md5($user_password) == $md5_password_from_database) {
//login here...
}
- ip 정보는 문자열 방식보다는 숫자 방식[ip2long(), long2ip()]으로 저장하라(참고)
- 자주 변경되지 않는 것들은 캐싱 라이브러리(Smarty, Cache Lite)를 통해 캐싱한다.(참고)
- Database 변수들은 Unset하라. 커넥션 후 필요 없어진다