Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP eval() 함수 완벽 가이드: 문자열을 PHP 코드로 실행하기

PHP의 eval() 함수는 문자열로 된 내용을 실제 PHP 코드로 해석하여 실행하는 함수입니다. 동적으로 코드를 생성하거나 변수를 문자열 안에서 치환해야 할 때 유용하게 사용됩니다.

문법

eval(code)

매개변수

  • code − 실행하고자 하는 PHP 코드가 담긴 문자열입니다.

반환값

eval() 함수의 반환 동작은 다음과 같습니다.

  • 코드 문자열 안에 return 문이 없으면 null을 반환합니다.
  • return 문이 호출되면 return으로 전달된 값을 그대로 반환합니다.
  • 코드 문자열에 파싱(parse) 오류가 존재하면 false를 반환합니다.

사용 예제

<?php
   $one = "Demo";
   $two = "text";
   $res = 'This is $one $two!';
   echo $res . "<br>";
   eval("\$res = \"$res\";");
   echo $res;
?>

실행 결과

위 예제를 실행하면 다음과 같은 결과가 출력됩니다.

This is $one $two!
This is Demo text!

예제 설명

처음 출력된 This is $one $two!는 작은따옴표로 정의된 문자열이므로 변수가 치환되지 않고 그대로 표시됩니다. 이후 eval() 함수가 해당 문자열을 PHP 코드로 실행하면서 큰따옴표 형태로 재평가되어, 두 번째 출력에서는 $one$two의 값이 각각 치환된 This is Demo text!가 출력됩니다.

주의사항

eval() 함수는 전달된 문자열을 그대로 실행하기 때문에 매우 강력하지만 위험한 함수이기도 합니다. 사용자 입력값 등 외부 데이터가 eval()에 전달될 경우 코드 삽입(Code Injection) 공격에 노출될 수 있으므로, 반드시 신뢰할 수 있는 데이터에만 사용하고 가능하면 다른 대안을 우선 고려하는 것이 좋습니다.