PHP는 서버에서 먼저 실행되고, 자바스크립트는 브라우저(클라이언트)에서 나중에 실행되기 때문에 두 언어가 직접 변수를 주고받을 수는 없습니다. 하지만 아래 코드처럼 PHP에서 자바스크립트 코드를 출력하도록 작성하면, 같은 페이지에서 자바스크립트 변수 값을 손쉽게 표시할 수 있습니다.
<script>
var res = "success";
</script>
<?php
echo "<script>document.writeln(res);</script>";
?>
코드 동작 원리
위 예제의 실행 흐름은 다음과 같습니다.
1. 자바스크립트가 먼저 로드되면서 변수 res에 문자열 "success"가 저장됩니다.
2. PHP의 echo 문이 브라우저로 document.writeln(res) 코드를 출력합니다.
3. 브라우저가 이 자바스크립트 코드를 실행하면서 변수 res의 값이 화면에 그대로 나타납니다.
즉, PHP가 자바스크립트 변수 자체를 읽어오는 것이 아니라, 자바스크립트에게 변수를 출력하도록 명령을 전달하는 방식입니다.
참고: PHP에서 값을 실제로 받아 처리해야 한다면?
위 방법은 단순히 화면에 값을 보여주는 것일 뿐, PHP 코드 내부에서 변수 값을 사용할 수 있게 해주지는 않습니다. 서버 측 PHP에서 자바스크립트의 데이터를 실제로 받아 처리하려면 다음과 같은 방법을 사용해야 합니다.
- AJAX(fetch 또는 XMLHttpRequest): 페이지를 새로고침하지 않고 비동기적으로 데이터를 서버에 전송
- HTML 폼(form) 전송: 입력 값을 POST 또는 GET 방식으로 PHP에 전달
- 쿠키(Cookie): 자바스크립트에서 쿠키를 설정하면 PHP의 $_COOKIE로 읽을 수 있음
- URL 쿼리 스트링: 페이지 이동 시 파라미터를 함께 전달하여 $_GET으로 수신
상황에 맞는 방식을 선택하면 클라이언트와 서버 간에 데이터를 안정적으로 주고받을 수 있습니다.