PHP에서 echo와 print는 모두 문자열을 화면에 출력하기 위한 언어 구조(language construct)입니다. 두 구문의 가장 큰 차이점은 반환값입니다. echo는 반환값이 없는 void 타입인 반면, print는 항상 1을 반환하므로 표현식(expression) 내부에서 사용할 수 있습니다.
print_r은 변수에 대한 사람이 읽기 쉬운(human-readable) 정보를 출력하는 함수로, 특히 배열이나 객체의 내부 구조를 확인할 때 매우 유용합니다.
주요 차이점 비교
- echo: 반환값이 없으며, 쉼표(,)를 이용해 여러 문자열을 한 번에 출력할 수 있습니다. print보다 실행 속도가 약간 더 빠릅니다.
- print: 반환값이 1이므로 조건문 등 표현식 안에서 사용할 수 있으며, 인자는 하나만 전달할 수 있습니다.
- print_r: 배열과 객체의 키-값 구조를 보기 좋게 출력하며, 두 번째 인자로 true를 전달하면 출력하지 않고 결과를 문자열로 반환합니다.
예제
이제 echo, print, print_r을 사용하여 배열 값을 출력하는 예제를 살펴보겠습니다.
<?php
$arr = array("John", "Jacob", "Tom", "Tim");
echo "Array...\n";
foreach($arr as $value) {
echo "Value = $value \n";
}
echo "\nDisplaying Array Values using print...\n";
foreach($arr as $value) {
print("Value = $value \n");
}
echo "\nDisplaying Array Values using print_r...\n";
print_r($arr);
?>실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Array...
Value = John
Value = Jacob
Value = Tom
Value = Tim
Displaying Array Values using print...
Value = John
Value = Jacob
Value = Tom
Value = Tim
Displaying Array Values using print_r...
Array
(
[0] => John
[1] => Jacob
[2] => Tom
[3] => Tim
)