(PHP 4 >= 4.2.0, PHP 5)
var_export — 변수를 처리가능한 문자열 표현으로 출력하거나 반환합니다
var_export()는 주어진 변수에 대한 구조화된 정보를 얻습니다. 한 가지 차이를 제외하고, var_dump()와 동일합니다: 반환된 표현은 유효한 PHP 코드입니다.
내보내길 원하는 변수
TRUE로 설정하여 사용하면, var_export()는 변수 표현을 출력하는 대신에 반환합니다.
Note: 이 함수를 특정 인수와 함께 사용할 때, 내부적으로 출력 버퍼링을 사용합니다. 그러므로, ob_start() 콜백 함수 안에서는 사용할 수 없습니다.
return 인수를 TRUE로 사용할 때 변수 표현을 반환합니다. 그 외에는 NULL을 반환합니다.
Example #1 var_export() 예제
<?php
$a = array (1, 2, 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($b, true);
echo $v;
?>
위 예제의 출력:
3.1
Example #2 PHP 5.1.0부터 클래스 내보내기
<?php
class A { 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($a, true) . ';'); // $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()를 사용하십시오.