PHP는 탄생 초기, 그다지 반응이 없었지만 버전 3이 발표되자 많은 웹 프로그래머가 PHP에 관심을 갖기 시작하였습니다. 그래서 오픈프로젝트인 PHP의 특성상 아주 다양한 함수들과 기능들이 포함되었습니다. 덩치가 더 커졌지요. 그래서 속도가 느려지기도 했습니다. 여기서는 PHP의 코딩 최적화를 위한 기법을 소개합니다. 여기에 나온 방법들만 잘 지킨다면 최적화된 PHP 소스를 작성할 수 있을 것입니다.

PHP의 기본적인 코딩법

1) PHP 시작하기

PHP는 HTML 문서에 작성이 되는 프로그래밍 언어입니다. 그러므로 PHP라는 프로그래밍 언어가 시작된다는 표시가 있어야 합니다.
보통 아래와 같이 PHP 시작을 합니다.
<?
    {이곳에 프로그래밍을 합니다}
?>
하지만 위와 같은 PHP의 시작 태그는 <?xml과 중복이 될 수 있기 때문에 아래와 같은 방법을 PHP에서는 권장합니다.
<?php
    {이곳에 프로그래밍을 합니다}
?>

2) 함수 생성

PHP에서는 사용자가 자유롭게 함수를 생성할 수 있습니다.
PHP에서 함수의 첫문자는 반드시는 아니지만 소문자로 하는 것을 원칙으로 합니다. 이것은 C언어의 규칙과 같은 것입니다.

아래와 같은 함수의 생성 코드를 권장합니다.
function testFunction(인수1, 인수2, 인수3, 인수4)
{
    {프로그래밍}
}
인수가 여러개일 경우는 쉼표(,)와 그 다음 인수를 한 칸 띄어야 합니다. 그리고 함수 코드가 시작이 되는 괄호({)는 그 다음 라인에 위치해야 합니다.

3) 변수 생성

PHP에서는 C에서와 같이 복잡한 변수 생성은 없지만 아주 간단한 규칙이 있습니다.

PHP에서 상수를 생성할 때 모든 문자를 대문자로 생성합니다. 또한 띄어쓰기가 필요할 경우 언더바(_)를 사용합니다.
다음은 상수 생성의 예입니다.
define('TEST', '이것은 테스트');
define('TEST_2', '이것은 테스트2');
일반 변수를 생성할 때에는 모든 문자를 소문자로 하는 것을 권장합니다. 또한 짧지만 잘 알아볼 수 있도록 생성하도록 합니다.

4) 각종 구문

PHP에는 C언어와 같이 IF문, FOR문 등이 존재합니다.

아래와 같은 IF구문 코딩법을 PHP에서 권장합니다.
if ($test == 1) {
    {프로그래밍}
} else {
    {프로그래밍}
}
if 다음에 한 칸을 띄우고 괄호({)는 한 라인에 같이 씁니다. 만약 else를 사용한다면 if와 같이 한 칸을 띄우고 사용합니다.
아래는 FOR문과 WHILE, FOREACH문의 올바른 코딩법입니다.
for ($i=0; $i<10; $i++) {
    {프로그래밍}
}

while ($i) {
    {프로그래밍}
}

foreach ($array as $key => $val) {
    {프로그래밍}
}
PHP에서는 구문 이름(if, for, while, foreach 등)을 입력한 후 다음 괄호( ( )에까지 한 칸을 띄웁니다. 5) 나머지 중요 코딩법PHP에서 탭(Tab)스페이스(띄어쓰기)로 4칸을 이용하는 것을 권장합니다.

실수할 수 있는 습관


PHP
를 코딩할 때 습관적으로 실수 할 수 있는 코딩 스타일입니다.

1. 문자 쿼테이션

잘못된 코딩 $ret = $arr[var1];
올바른 코딩 $ret = $arr['var1'];
배열의 키 문자반드시 싱글 쿼테이션으로 처리해 주어야 합니다. 쿼테이션이 들어가 있지 않은 변수인 경우 Notice 에러가 발생합니다. 또한 싱글 쿼테이션과 더블 쿼테이션의 차이점을 명확히 알고 사용하는 것도 중요합니다. 일반 문자열의 경우에는 싱글 쿼테이션을 사용하는 것이 바람직합니다.

2. 변수 초기화

잘못된 코딩
$str .= "abc";

올바른 코딩
$str = "";
$str .= "abc";
변수를 초기화 하지 않은 상태에서 변수를 마구 사용하는 경우가 허다할 것입니다. 이는 올바른 코딩 스타일이 아닙니다. 첫번째 구문은 초기화 없이 $str 이 추가되므로 Notice 에러가 발생한다. 변수를 초기화하는 습관을 들이는 것이 중요합니다.

3. 변수 타입의 변경

잘못된 코딩
$int = 3;
$int = "Hello, World";

올바른 코딩
$int = 3;
$str = "Hello, World";
PHP에서는 형변환이 아주 자유롭지만 그렇다고 해서 위와 같이 마구잡이로 형변환을 하는 것은 아주 좋지 못한 습관입니다. 되도록 동일한 변수명의 경우 동일한 타입을 유지시켜주는 것이 좋습니다.

4. isset의 활용

잘못된 코딩
$var = $_POST['var'];

올바른 코딩
$var = isset($_POST['var']) ? $_POST['var'] : NULL;
POST 값으로 var 이라는 변수의 값을 넘길 경우에 대부분의 PHP 프로그래머들은 위와 같이 코딩합니다. 그러나 이러한 코딩은 가끔씩 Notice 에러를 발생시킵니다. 이유는 POST 로 var 라는 변수의 값이 넘어오지 않았을 때입니다. 따라서 정확하게 사용하려면 두번째와 같이 코딩해야 합니다. 그러나 매번 이렇게 코딩하는 것이 번거롭기 때문에 적당한 함수를 만들어서 사용하는 것이 좋습니다.

5. global off

대부분의 PHP 프로그래머들은 global on 에 익숙해져 있습니다. 즉 GET, POST 로 넘어오는 변수를 별도로 $_GET, $_POST 를 통해 받지 않고 그냥 바로 사용하는 경우입니다. 그러나 이것은 보안에 무척 취약하며 반드시 global off 로 설정되어 있다고 생각하고 프로그램을 작성해야 합니다.

6. 연산자 사용시 주의

잘못된 코딩
$foo[$i++] = $j;

올바른 코딩
$foo[$i] = $j;
$i++;++, -- 연산자는 되도록 키 변수안에서 사용하지 않도록 합니다.

8. 잘못된 IF문의 사용

잘못된 코딩
if ($row = getRows()) {
    ...
}

올바른 코딩
if (($row = getRows()) == true) {
    ...
}
조건절 안에서는 되도록 코딩을 쉽고 명확하게 해야 합니다. 첫번째와 같이 코딩한 경우 다른 사람이 소스를 잘못 읽을 가능성이 아주 많습니다. 또한 if 문에서는 간단한 구문일지라도 { } 를 반드시 사용하길 권장합니다.

9. error_reporting() 사용

확실한 디버깅을 위해 error_reporting(E_ALL)을 사용하길 권장합니다. 이를 통해 내가 어느 부분에서 코딩을 잘못하고 있었는지를 쉽게 찾아낼 수 있을 것입니다.
받은 트랙백이 없고, 댓글 하나가 달렸습니다.
댓글+트랙백 RSS :: http://www.beneglo.com/rss/response/29
댓글+트랙백 ATOM :: http://www.beneglo.com/atom/response/29

트랙백 주소 :: http://www.beneglo.com/trackback/29

트랙백 RSS :: http://www.beneglo.com/rss/trackback/29

트랙백 ATOM :: http://www.beneglo.com/atom/trackback/29

댓글을 달아 주세요

댓글 RSS 주소 : http://www.beneglo.com/rss/comment/29
댓글 ATOM 주소 : http://www.beneglo.com/atom/comment/29
  1. 박갑생 2008/10/11 01:57  address  modify / delete  reply

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
    <html>
    <head>
    <title>부업으로 돈벌기</title>
    <meta name="generator" content="Namo WebEditor v3.0">
    </head>

    <body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

    <p align="center"><b>부업으로 돈벌기<br>
    이 부업을 하시면 반드시 돈을 벌 수 있습니다 <br>
    당신은 이 정보를 보는 순간 이미 행운아이십니다 <br>
    딱 1회 60.000원 투자하고 딱 3명 추천하여 <br>
    자동 스필오버 방식으로 1억 7천 법니다 <br>
    이 것은 사실입니다 <br>
    다만 투자금 없는 돈벌이 중도에 사라지는 것 장담 못합니다 <br>
    전국에 남녀노소 누구나 참여하십시오 <br>
    당신은 이 사업으로 부자가 되실 수 있습니다 <br>
    참여하기 아래 주소를 클릭하십시오 <br>
    아래 주소를 클릭해도 열리지 않으면 주소를 <br>
    선택 복사해서 위에 주소 창에 붙여 넣기 하시고 엔트 치십시오</b></p>
    <p align="center"><a href="http://don.or.kr/my7979 "><font size="4"><b>h</b></font></a><a href="http://don.or.kr/my7979"><font
    size="4" color="blue"><b>ttp://don.or.kr/my7979 </b></font></a><font size="4"><b>
    </b></font></p>
    <p align="center">&nbsp;</p>
    <p align="center"><font size="2">관리자님 누를 끼쳐 정말 죄송합니다 정 마음에
    없으신 정보라면 귀 사이트<br>
    주소를 메일로 보내주시면 금후 이런 일이 없게 하겠습니다 <br>
    </font><a href="mailto:h1112222a@naver.com"><font size="2">h1112222a@naver.com</font></a><font
    size="2"> <br>
    <br>
    삭제 암호 aaas</font></p>
    </body>

    </html>

[로그인][오픈아이디란?]

독도 광고 모금 캠페인