(PHP 4 >= 4.2.0, PHP 5)
var_export — Visualizza o restituisce una variabile in formato stringa
La funzione var_export() restituisce informazioni strutturate sulla data variabile. E' simile a var_dump() con una differenza: il valore restituito è codice PHP.
expression
La variabile che si desidera esportare.
return
Se utilizzato ed impostato a TRUE
, la funzione var_export()
restituisce la rappresentazione della variabile anzichè visualizzarla.
Restituisce la rappresentazione della variabile quando il parametro return
viene utilizzato ed impostato a TRUE
. Altrimenti la funzione restituisce
NULL
.
Nota:
Quando il parametro
return
è utilizzato, questa funzione usa un buffering di output interno, quindi non può essere usata all'interno di una funzione callback ob_start().
Versione | Descrizione |
---|---|
5.1.0 | Possibilità di esportare classi e array contenenti classi utilizzando il metodo magico __set_state(). |
Example #1 Esempio di utilizzo di var_export()
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>
Il precedente esempio visualizzerà:
array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), )
<?php
$b = 3.1;
$v = var_export($b, true);
echo $v;
?>
Il precedente esempio visualizzerà:
3.1
Example #2 Esportazione classi da PHP 5.1.0
<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>
Il precedente esempio visualizzerà:
A::__set_state(array( 'var' => 5, ))
Example #3 Utilizzo di __set_state() (da 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);
?>
Il precedente esempio visualizzerà:
object(A)#2 (2) { ["var1"]=> int(5) ["var2"]=> string(3) "foo" }
Nota:
Le variabili di tipo resource, non possono essere esportate da questa funzione.
Nota:
var_export() non gestisce i riferimenti circolari poichè sarebbe quasi impossibile generare codice PHP analizzabile per questo. Se si vuole fare qualcosa con la rappresentazione completa di un array o di un oggetto, utilizzare serialize().
Quando var_export() esporta oggetti, il primo slash non è incluso nel nome della classe delle classi del namespace per massima compatibilità.