PHP funkce var_export()
Funkce vrátí string, který reprezentuje vloženou proměnnou jako kdyby byla napsána v PHP scriptu. Výstup lze rovnou použít pro PHP parser.
Parametry
Parametr | Datový typ | Výchozí hodnota | Poznámka |
---|---|---|---|
$expression | mixed | není | Proměnná s daty, které chceme exportovat. |
$return | bool | null | Pokud je true , funkce hodnotu parametru vrátí, místo toho, aby se rovnou použila. |
Návratové hodnoty
mixed
Funkce vrátí reprezentaci vložené proměnné, pokud byl druhý parametr true
.
Pokud byl druhý parametr false
, funkce vrátí vždy hodnotu null
.
Příklad dumpování pole
Mějme vstup:
$a = [1, 2, ['a', 'b', 'c']];
var_export($a);
Vrátí:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
Dumpování složitějších objektů a formátování
Často je potřeba dumpovat (exportovat) objekty s velmi sloužitou strukturou, nebo dokonce vygenerovat celou PHP třídu podle zadání.
Dobře k tomu slouží balík PhpGenerator, který je přímo součástí Nette framework.
Použití je jednoduché:
$class = new Nette\PhpGenerator\ClassType('Demo');
$class
->setFinal()
->setExtends('ParentClass')
->addImplement('Countable')
->addTrait('Nette\SmartObject')
->addComment("Popis třídy.\nDruhý řádek\n")
->addComment('@property-read Nette\Forms\Form $form');
// kód jednoduše vygenerujete přetypováním na řetězec nebo použitím echo:
echo $class;
Vygeneruje:
/**
* Popis třídy
* Druhý řádek
*
* @property-read Nette\Forms\Form $form
*/
final class Demo extends ParentClass implements Countable
{
use Nette\SmartObject;
}
Dumpování konstant a polí v proměnných:
$class->addConstant('ID', 123);
$class->addProperty('items', [1, 2, 3])
->setVisibility('private')
->setStatic()
->addComment('@var int[]');
Vygeneruje:
const ID = 123;
/** @var int[] */
private static $items = [1, 2, 3];
Další příklady jsou v oficiální dokumentaci.
Další zdroje
[Oficiální dokumentace funkce var-export](- Oficiální manuál pro var_export)
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Kontakt Spolupráce