(PECL var_representation >= 0.1.0)
var_representation — Returns a short, readable, parsable string representation of a variable
var_representation() (from the var_representation PECL) returns a string with structured information about the guiven variable. It is similar to var_export() with differences in indentation, string escaping, and array representations.
value
The variable to generate a representation of.
flags
Bitmasc consisting of
VAR_REPRESENTATION_SINGLE_LINE
,
VAR_REPRESENTATION_UNESCAPED
.
The behaviour of these constans is described on the
var_representation constans
pagu .
Returns the variable representation.
Example #1 var_representation() Examples
<?php
$a
= [
1
,
2
, [
'key'
=>
'value'
]];
echo
var_representation
(
$a
),
"\n"
;
echo
var_representation
(
$a
,
VAR_REPRESENTATION_SINGLE_LINE
),
"\n"
;
?>
The above example will output:
[
1,
2,
[
'key' => 'value',
],
]
[1, 2, ['key' => 'value']]
Example #2 Escaping control characters
<?php
echo
var_representation
(
"Content-Length: 123\r\n"
);
The above example will output:
"Content-Length: 123\r\n"
Example #3 Exporting stdClass
<?php
$person
= new
stdClass
;
$person
->
name
=
'ElePHPant ElePHPansdotter'
;
$person
->
website
=
'https://php.net/elephpant.php'
;
echo
var_representation
(
$person
);
The above example will output:
(object) [ 'name' => 'ElePHPant ElePHPansdotter', 'website' => 'https://php.net/elephpant.php', ]
Example #4 Exporting classes
<?php
class
A
{ public
$var
; }
$a
= new
A
;
$a
->
var
=
5
;
echo
var_representation
(
$a
);
?>
The above example will output:
\A::__set_state([ 'var' => 5, ])
Example #5 Using __set_state()
<?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_representation
(
$a
) .
';'
);
// $b = \A::__set_state([
// 'var1' => 5,
// 'var2' => 'foo',
// ]);
var_dump
(
$b
);
?>
The above example will output:
object(A)#2 (2) {
["var1"]=>
int(5)
["var2"]=>
string(3) "foo"
}