Operator Precedence
Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 20번째.
표현식에 여러 연산자가 포함되어 있을 때, PHP는 연산자 우선순위라고 불리는 특정 순서를 따릅니다. 수학에서와 마찬가지로, 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 수행됩니다.
<?php
echo 5 + 3 * 2; // 출력: 11, 16 아님
?>PHP는 3 × 2를 먼저 곱합니다(6을 얻음), 그 다음 5를 더합니다. 연산자가 같은 우선순위를 가진다면 왼쪽에서 오른쪽으로 계산될 것입니다: 5 + 3 = 8, 그 다음 8 × 2 = 16. 하지만 그렇게 작동하지 않습니다.
배운 연산자들의 우선순위 (높은 순서부터 낮은 순서까지):
| 우선순위 | 연산자 |
| 최고 | ** (거듭제곱) |
| 높음 | * / % |
| 낮음 | + - |
기본 순서를 무시하려면 괄호를 사용하세요. 괄호 안의 연산은 항상 먼저 평가됩니다:
<?php
echo (5 + 3) * 2; // Outputs: 16
echo 2 ** 3 * 2; // Outputs: 16 (8 * 2)
echo 2 ** (3 * 2); // Outputs: 64 (2^6)
?>의심스러울 때는 괄호를 사용해 의도를 명확히 하세요. 이렇게 하면 코드가 더 읽기 쉽고 예상치 못한 결과를 방지할 수 있습니다.
챌린지
쉬움입력에서 세 개의 숫자를 읽으세요: a, b, 그리고 c.
다음 표현의 결과를 계산하고 출력하세요. 괄호를 사용하여 덧셈이 곱셈 전에 수행되도록 하세요:
(a + b) * c ** 2
이것은: 먼저 a와 b를 더한 후, 그 합을 c의 2제곱으로 곱하는 것을 의미합니다.
예시:
입력값이 2, 3, 그리고 4인 경우, 출력은 80이어야 합니다. 왜냐하면:
- 먼저, 2 + 3 = 5
- 그 다음, 4 ** 2 = 16 계산
- 마지막으로, 5 * 16 = 80
치트 시트
PHP는 여러 연산자가 포함된 표현식을 평가할 때 연산자 우선순위 규칙을 따릅니다:
| 우선순위 | 연산자 |
| 최고 | ** (거듭제곱) |
| 높음 | * / % |
| 낮음 | + - |
<?php
echo 5 + 3 * 2; // 출력: 11 (곱셈 먼저)
?>기본 순서를 무시하려면 괄호를 사용하세요. 괄호 안의 연산은 먼저 평가됩니다:
<?php
echo (5 + 3) * 2; // 출력: 16
echo 2 ** 3 * 2; // 출력: 16 (8 * 2)
echo 2 ** (3 * 2); // 출력: 64 (2^6)
?>직접 해보기
<?php
// 입력 읽기
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: 아래에 (a + b) * c ** 2를 계산하는 코드를 작성하세요
// 결과 출력
echo $result;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators