1. 주석 달기

일반적으로 코드는 많은 주석을 포함하는 것이 좋습니다.
클래스와 메소드 선언 전의 DocBlock 스타일의 주석은 통합개발환경(IDE)등에서 인식될 수 있습니다.

/**
 * Super Class
 *
 * @package Package Name
 * @subpackage Subpackage
 * @category Category
 * @author Author Name
 * @link http://example.com
 */

class Super_class {

/**
 * Encodes string for use in XML
 *
 * @access public
 * @param string
 * @return string
 */

function xml_encode($str)

코드에 한 줄 주석을 사용할 수 있고, 큰 주석 블럭과 코드 사이에는 빈 줄을 넣습니다.

// break up the string by newlines
$parts = explode("\n", $str);

// A longer comment that needs to give greater detail on what is
// occurring and why can use multiple single-line comments.  Try to
// keep the width reasonable, around 70 characters is the easiest to
// read.  Don't hesitate to link to permanent external resources
// that may provide greater detail:
//
// http://example.com/information_about_something/in_particular/


$parts = $this->foo($parts);


2. TRUE, FALSE, NULL

이 키워드는 항상 대문자가 되어야 합니다.

INCORRECT:
if ($foo == true)
$bar = false;
function foo($bar = null)

CORRECT:
if ($foo == TRUE)
$bar = FALSE;
function foo($bar = NULL)


3. 논리 연산자

|| 연산자는 숫자 11과 비슷해 보이므로 사용하지 않는 것이 좋습니다.
&& 연산자는 AND 보다 많이 쓰이지만 둘다 가능합니다.
! 연산자의 경우 앞뒤로 공백이 와야 합니다.

INCORRECT:
if ($foo || $bar)
if ($foo AND $bar)  // okay but not recommended for common syntax highlighting applications
if (!$foo)
if (! is_array($foo))

CORRECT:
if ($foo OR $bar)
if ($foo && $bar) // recommended
if ( ! $foo)
if ( ! is_array($foo))


4. 리턴값 비교와 형 변환

어떤 PHP 함수는 실패했을 때 FALSE를 반환하지만, "" 나 0 값을 반환할 수도 있을 것입니다.
조건문에서 반환된 값을 사용할 때 가능하면 변수 유형을 비교하여 명시합니다. (===, !== 이용)

INCORRECT:
// If 'foo' is at the beginning of the string, strpos will return a 0,
// resulting in this conditional evaluating as TRUE
if (strpos($str, 'foo') == FALSE)

CORRECT:
if (strpos($str, 'foo') === FALSE)

INCORRECT:
function build_string($str = "")
{
    if ($str == "") // uh-oh!  What if FALSE or the integer 0 is passed as an argument?
    {

    }
}

CORRECT:
function build_string($str = "")
{
    if ($str === "")
    {

    }
}

typecasting 도 매우 유용할 수 있습니다.

$str = (string) $str; // cast $str as a string


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,