update : 2015.11.03
php.shukuma.com

검색:
 
 
변수를 처리가능한 문자열 표현으로 출력하거나 반환합니다

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_export변수를 처리가능한 문자열 표현으로 출력하거나 반환합니다

설명

mixed var_export ( mixed $expression [, bool $return ] )

var_export()는 주어진 변수에 대한 구조화된 정보를 얻습니다. 한 가지 차이를 제외하고, var_dump()와 동일합니다: 반환된 표현은 유효한 PHP 코드입니다.

인수

expression

내보내길 원하는 변수

return

TRUE로 설정하여 사용하면, var_export()는 변수 표현을 출력하는 대신에 반환합니다.

Note:

return 인수와 함께 사용할 때, 내부적으로 출력 버퍼링을 사용합니다. 그러므로, ob_start() 콜백 함수 안에서는 사용할 수 없습니다.

반환값

return 인수를 TRUE로 사용할 때 변수 표현을 반환합니다. 그 외에는 NULL을 반환합니다.

변경점

버전 설명
5.1.0 __set_state 마법 메쏘드를 사용하여 클래스와 클래스를 가진 배열을 내보낼 수 있게 되었습니다.

예제

Example #1 var_export() 예제

<?php
$a 
= array (12, array ("a""b""c"));
var_export($a);
?>

위 예제의 출력:

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php
$b 
3.1;
$v var_export($btrue);
echo 
$v;
?>

위 예제의 출력:

3.1

Example #2 PHP 5.1.0부터 클래스 내보내기

<?php
class { public $var; }
$a = new A;
$a->var 5;
var_export($a);
?>

위 예제의 출력:

A::__set_state(array(
    'var' => 5,
))

Example #3 __set_state 사용하기 (PHP 5.1.0부터)

<?php
class A
{
    public 
$var1;
    public 
$var2;

    public static function 
__set_state($an_array)
    {
        
$obj = new A;
        
$obj->var1 $an_array['var1'];
        
$obj->var2 $an_array['var2'];
        return 
$obj;
    }
}

$a = new A;
$a->var1 5;
$a->var2 'foo';

eval(
'$b = ' var_export($atrue) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);
?>

위 예제의 출력:

object (A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

주의

Note:

이 함수로 resource형 변수는 내보낼 수 없습니다.

Note:

var_export()는 순환 참조를 다루지 못합니다. 처리 가능한 PHP 코드를 생성하는 것이 불가능에 가깝기 때문입니다. 배열이나 객체로 그러한 일을 하려면, serialize()를 사용하십시오.

참고

  • print_r() - 변수에 관한 정보를 사람이 읽기 편하게 출력
  • serialize() - 값의 저장 표현을 생성
  • var_dump() - 변수에 대한 정보를 덤프