PHP Conference Nagoya 2025

var_representation

(PECL var_representation >= 0.1.0)

var_representationRenvoie une représentation lisible, courte et analysable d'une variable

Description

var_representation(mixed $value, int $flags = 0): string

var_representation() (de la PECL var_representation) renvoie une chaîne de caractères avec des informations structurées sur la variable donnée. Elle est similaire à var_export() avec des différences dans l'indentation, l'échappement des chaînes et les représentations de tableau.

Liste de paramètres

value

La variable pour générer une représentation.

flags

Un masque de bits consistant en VAR_REPRESENTATION_SINGLE_LINE, VAR_REPRESENTATION_UNESCAPED. Le comportement de ces constantes est décrit sur la page des constantes de var_representation.

Valeurs de retour

Renvoie la représentation de la variable.

Exemples

Exemple #1 Exemple de var_representation()

<?php
$a
= [1, 2, ['key' => 'value']];
echo
var_representation($a), "\n";
echo
var_representation($a, VAR_REPRESENTATION_SINGLE_LINE), "\n";
?>

L'exemple ci-dessus va afficher :

[
  1,
  2,
  [
    'key' => 'value',
  ],
]
[1, 2, ['key' => 'value']]

Exemple #2 Échappement des caractères de contrôle

<?php
echo var_representation("Content-Length: 123\r\n");

L'exemple ci-dessus va afficher :

"Content-Length: 123\r\n"

Exemple #3 Exporter une stdClass

<?php
$person
= new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

echo
var_representation($person);

L'exemple ci-dessus va afficher :

(object) [
  'name' => 'ElePHPant ElePHPantsdotter',
  'website' => 'https://php.net/elephpant.php',
]

Exemple #4 Exporter des classes

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

L'exemple ci-dessus va afficher :

\A::__set_state([
  'var' => 5,
])

Exemple #5 Utilisation avec __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);
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

  • var_export() - Retourne le code PHP utilisé pour générer une variable

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top