(PECL var_representation >= 0.1.0)
var_representation β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅, ΡΠΈΡΠ°Π΅ΠΌΠΎΠ΅, ΡΠ°Π·Π±ΠΎΡΡΠΈΠ²ΠΎΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
var_representation() (ΠΌΠΎΠ΄ΡΠ»Ρ PECL var_representation) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° var_export() Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΌΠΈ Π² ΠΎΡΡΡΡΠΏΠ°Ρ , ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
valueΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
flags
ΠΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ°, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ·:
VAR_REPRESENTATION_SINGLE_LINE,
VAR_REPRESENTATION_UNESCAPED.
ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ var_representation.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ var_representation()
<?php
$a = [1, 2, ['key' => 'value']];
echo var_representation($a), "\n";
echo var_representation($a, VAR_REPRESENTATION_SINGLE_LINE), "\n";
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
[
1,
2,
[
'key' => 'value',
],
]
[1, 2, ['key' => 'value']]
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
<?php
echo var_representation("Content-Length: 123\r\n");Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
"Content-Length: 123\r\n"
ΠΡΠΈΠΌΠ΅Ρ #3 ΠΠΊΡΠΏΠΎΡΡ stdClass
<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';
echo var_representation($person);Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
(object) [ 'name' => 'ElePHPant ElePHPantsdotter', 'website' => 'https://php.net/elephpant.php', ]
ΠΡΠΈΠΌΠ΅Ρ #4 ΠΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ²
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
echo var_representation($a);
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
\A::__set_state([ 'var' => 5, ])
ΠΡΠΈΠΌΠ΅Ρ #5 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ __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);
?>Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
object(A)#2 (2) {
["var1"]=>
int(5)
["var2"]=>
string(3) "foo"
}