올바른 이해와 사용 방법
- PHP 버전
- 4+
echo는 문자열, 변수, 숫자 등 다양한 값을 화면(브라우저)에 문자열 형태로 출력할 때 PHP에서 가장 기본적으로 사용하는 언어 구조(Language Construct)입니다.
echo 키워드 뒤에 오는 문자열, 변수, 숫자 등 다양한 값을 화면(브라우저)에 문자열 형태로 출력합니다.
기본 예제
echo '환영합니다.';
// 출력: 환영합니다.
$var = '반갑습니다.';
echo $var;
// 출력: 반갑습니다.
$str1 = '코딩';
$str2 = '에브리바디';
echo $str1 . $str2;
// 출력: 코딩에브리바디
echo 123;
// 출력: 123
echo 1 + 1;
// 출력: 2
$num1 = 2;
$num2 = 4;
echo $num1 * $num2;
// 출력: 8
$arr = ['배열의 요소 1', '배열의 요소 2'];
echo $arr[0];
// 출력: 배열의 요소 1
위 기본 예제처럼 echo는 문자열, 변수, 숫자 등 다양한 값을 화면(브라우저)에 문자열 형태로 출력하는 데 사용됩니다.
주의할 점
배열 전체나 객체 전체처럼 내부 구조를 가진 데이터는 echo로 구조화된 정보를 상세하게 문자열 형태로 출력할 수 없습니다. 배열은 경고(Warning)를 발생시키며, 객체는 문자열 변환 방법이 정의되지 않은 경우 오류(Fatal error)가 발생합니다.
$arr = ['배열의 요소 1', '배열의 요소 2'];
echo $arr;
// Warning: Array to string conversion
// 출력: Array
참고하세요!
배열이나 객체의 내부 구조를 확인하려면 print_r() 또는 var_dump() 함수를 사용할 수 있습니다.
두 함수는 주로 데이터의 구조와 타입 정보를 확인하기 위한 디버깅용 함수로 사용됩니다.
구문
echo string ...$expressions: void
// 또는 괄호를 포함해서 사용할 수 있습니다.
echo(string ...$expressions): void
string은 출력되는 값의 데이터 타입을 의미하는 것이 아니라, 출력 가능한 표현식을 나타내는 구문 표기입니다.echo는 하나 이상의 표현식(expression)을 출력할 수 있으며, 괄호를 포함하거나 생략하여 사용할 수 있습니다.echo()형태로 작성할 수 있지만,echo는 함수가 아닌 언어 구조이므로 일반적인 함수 호출과는 다릅니다. 또한 반환 값도 없습니다....$expressions은 출력할 표현식을 쉼표(,)로 구분하여 하나 이상 입력할 수 있음을 의미합니다. 단,echo()형태로 작성할 때는 쉼표(,)로 구분하는 방식을 사용할 수 없습니다.
다양한 작성 예제
/* 출력할 표현식을 쉼표(,)로 구분하여 하나 이상 입력할 수 있습니다 */
echo '환영합니다.' , ' ' , '반갑습니다.';
// 출력: 환영합니다. 반갑습니다.
/* 괄호를 포함해서 사용할 수 있습니다. */
echo ('Hello World!');
// 출력: Hello World!
/* 출력 시 특징 */
// 줄 바꿈이나 공백이 추가되지 않으므로 아래 코드는 "helloworld"를 한 줄에 모두 출력합니다.
echo 'hello';
echo 'world';
// 위와 동일합니다.
echo 'hello', 'world';
/* 여러 줄에 걸쳐 작성할 수도 있습니다. */
echo '이 문자열은
여러 줄에 걸쳐 있습니다.';
// 이때 줄바꿈하는 사이는 줄바꿈 제어 문자(예: \r\n, \n\r, \n, \r)가 추가됩니다.
// HTML에서는 공백 문자로 처리됩니다.
// 출력: 이 문자열은 여러 줄에 걸쳐 있습니다.
echo는 표현식(expression)이 아닙니다.
echo는 다양한 값을 화면(브라우저)에 문자열 형태로 출력하는 언어 구조(Language Construct)이지 echo 자체가 하나의 값으로 평가되는 표현식(expression)이 아닙니다.
특히 다음과 같이 표현식이 필요한 위치에서는 echo를 사용할 수 없습니다.
// 변수 할당
$result = echo 'Hello World!';
// 조건식
if (echo 'Hello World!') {
echo '출력 완료';
}
// 삼항 연산자
$result = (echo 'Hello World!') ? 'A' : 'B';