echo와 print의 차이점 완벽정리


echo와 print 차이점

[ PHP 목차 보기 ]

echo와 print는 화면에 출력하는 기능을 하는 언어구성요소(language construct)이다. 똑같은 기능 때문에 둘의 차이점에 혼동할 수 있지만, 이 둘은 명백한 차이점이 있다. 결론부터 말하자면 차이점은 반환기능에 있다. 아래 예제들을 보면 명확히 이해가 될 것이다.

echo

echo(string ...$expressions): void
또는
echo string $expressions: void

1. 화면 출력기능만 있다. echo는 함수가 아니지만, 명령어 형태와 함수 형태 둘 다 가능하다. 엄밀히 말해서 소괄호는 함수에 사용되는 소괄호가 아니라, 표현식의 일부분이다. 따라서 echo를 함수라고 생각하는 것은 잘못된 개념 중에 하나다.

1
2
3
4
<?php
    echo ‘Hello World<br>’;
    echo(‘함수형태로도 사용가능’);
?>
cs
결과를 로딩 중입니다.

2. 반환 기능이 없다. 이 점이 print와 다른 점이다. 아래 print의 예제를 비교해보면 다른 점을 쉽게 이해할 수 있을 것이다. 이러한 특성 때문에 echo는 표현식(expression) 문맥 속에서 사용될 수 없다. 다음과 같은 코드를 작성하면 에러가 발생한다.

1
2
3
<?php
    $result = echo ‘Hello World<br>’;
?>
cs
결과를 로딩 중입니다.
1
2
3
4
<?php
    $value = ‘our small joy’;
    $value ? echo ‘true’ : echo ‘false’;
?>
cs
결과를 로딩 중입니다.

print

print(string $expression): int
또는
print string $expression : int

1. echo와 마찬가지로 화면 출력기능이 있다. print는 함수가 아니지만, 명령어 형태와 함수 형태 모두 가능하다. 엄밀히 말해서 소괄호는 함수에 사용되는 소괄호가 아니라, 표현식의 일부분이다. 따라서 print를 함수라고 생각하는 것은 잘못된 개념 중에 하나다.

1
2
3
4
<?php
    print ‘Hello World<br>’;
    print(‘Hello World<br>’);
?>
cs
결과를 로딩 중입니다.

2. echo와 가장 큰 차이점으로 정수 1을 반환한다. 아래 코드 출력값을 보면 int(1)임을 볼 수 있다. 또한 유의할 점으로, $result = print ‘Hello World<br>’; 을 입력할 때도 화면 출력기능이 발생한다는 점이다.

1
2
3
4
<?php
    $result = print ‘Hello World<br>’;
    var_dump($result);
?>
cs
결과를 로딩 중입니다.

이러한 반환값으로 무엇을 할 수 있을까? print는 반환값을 가지기 때문에, 표현식(expression)에 사용되어 질 수 있다. 다음 예제처럼 삼항 연산자에 넣을 수 있어서, 상황에 따라 echo 대신에 유용하게 쓰일 수 있다.

1
2
3
4
<?php
    $value = ‘our small joy’;
    $value ? print ‘true’ : print ‘false’;
?>
cs
결과를 로딩 중입니다.

[ PHP 목록 보기 ]


1 thought on “echo와 print의 차이점 완벽정리”

  1. Pingback: 【PHP】 DIRECTORY_SEPARATOR 사용 이유⋆ Our Small Joy

Leave a Reply