(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.
expressionLa 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à.