반드시(MUST)와 절대(MUST NOT)는 꼭 지켜준다.
그 외에는 권장사항임
<?php
또는 <?=
태그 사용PascalCase
사용 (ex. ClassNameExample
)_
로 구분 (ex. CLASS_CONSTANTS_LIKE_THIS
)camelCase
사용 (ex. methodNameMustBeWrittenThisWay
)PSR-2를 확장 및 대체, PSR-1을 준수해야함
\n
) 사용?>
생략boolean
❌ ->bool
, integer
❌ ->int
등)<?php
가 첫줄에 오면 절대 그 줄엔 다른 문장은 쓰면 안됨\
로 시작하면 안됨declare(strict_types=1)
라고 씀declare(ticks=1) {
// some code
}
new Foo();
extends
와 implements
키워드는 반드시 클래스 이름과 같은 줄에 선언반드시
절대
<?php
if ($expr1) {
// if body
} else {
// else body;
}
if (
$expr1
&& $expr2
) {
// if body
} elseif (
$expr2
&& $expr3
) {
// elseif body
}
<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
// no break
case 2:
case 3:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
switch (
$expr1
&& $expr2
) {
// structure body
}
<?php
// 한줄
for ($i = 0; $i < 10; $i++) {
// for body
}
// 여러줄
for (
$j = 0;
$j < 10;
$j++
) {
// for body
}
$i++;
--$j;
$intValue = (int) $input;
if ($a === $b) {
$foo = $bar ?? $a ?? $b;
} elseif ($a > $b) {
$foo = $a + $b * $c;
}
?
와 :
앞뒤로 반드시 하나 이상의 공백 사용$variable = $foo ? 'foo' : 'bar';
$variable = $foo ?: 'bar';
반드시
절대
implements
인터페이스 목록이 한줄이면 중괄호를 같은 줄에 써도 되지만, 여러줄로 나눌거면 반드시 다음 줄에 써줌. <?php
// Brace on the same line
$instance = new class extends \Foo implements \HandleableInterface {
// Class content
};
// Brace on the next line
$instance = new class extends \Foo implements
\ArrayAccess,
\Countable,
\Serializable
{
// Class content
};