PHP 에서 변수명을 print 하는 코드
페이지 정보

본문
1. 상황
PHP 에서 변수명을 찍어 보아야 하는 경우가 있다.
이게 실제 상황에서는 생각대로 잘 안된다.
우선 변수명을 찍는 코드는 아래와 같다.
```
function print_var_name(){
// read backtrace
$bt = debug_backtrace();
// read file
$file = file($bt[0]['file']);
// select exact print_var_name($varname) line
$src = $file[$bt[0]['line']-1];
// search pattern
$pat = '#(.*)'.__FUNCTION__.' *?\( *?(.*) *?\)(.*)#i';
// extract $varname from match no 2
$var = preg_replace($pat, '$2', $src);
// print to browser
echo '<pre>' . trim($var) . ' = ' . print_r(current(func_get_args()), true) . '</pre>';
}
```
출처 :
https://stackoverflow.com/questions/255312/how-to-get-a-variable-name-as-a-string-in-php
2. 적용 방법
그런데, 이 방법도 모든 상황에서 사용할 수는 없다.
예를 들어 위 구문을 별도의 함수로 만들어서 사용하면 원하는 값을 얻을 수 없다.
아래처럼 사용해야 한다.
```
function foo($var) {
// 여기에 위 함수 안의 구문을 직접 넣어서 사용해야 한다.
// 따로 함수를 만들어서 print_var_name() 이런식으로 호출하면 안된다.
}
```
PHP 에서 변수명을 찍어 보아야 하는 경우가 있다.
이게 실제 상황에서는 생각대로 잘 안된다.
우선 변수명을 찍는 코드는 아래와 같다.
```
function print_var_name(){
// read backtrace
$bt = debug_backtrace();
// read file
$file = file($bt[0]['file']);
// select exact print_var_name($varname) line
$src = $file[$bt[0]['line']-1];
// search pattern
$pat = '#(.*)'.__FUNCTION__.' *?\( *?(.*) *?\)(.*)#i';
// extract $varname from match no 2
$var = preg_replace($pat, '$2', $src);
// print to browser
echo '<pre>' . trim($var) . ' = ' . print_r(current(func_get_args()), true) . '</pre>';
}
```
출처 :
https://stackoverflow.com/questions/255312/how-to-get-a-variable-name-as-a-string-in-php
2. 적용 방법
그런데, 이 방법도 모든 상황에서 사용할 수는 없다.
예를 들어 위 구문을 별도의 함수로 만들어서 사용하면 원하는 값을 얻을 수 없다.
아래처럼 사용해야 한다.
```
function foo($var) {
// 여기에 위 함수 안의 구문을 직접 넣어서 사용해야 한다.
// 따로 함수를 만들어서 print_var_name() 이런식으로 호출하면 안된다.
}
```
추천0
댓글목록
등록된 댓글이 없습니다.