PHP funkce var_export()

   06. 07. 2020

Dostupné od verze: PHP 4.2.0

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 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

Nechte si posílat nové články do mailu:

Jan Barášek     Více o autorovi

Autor článku podniká jako fullstack senior developer v Praze. Spravuje 300 různě velkých webových projektů, fungujících dodnes. Během spolupráce nabral hluboké zkušenosti, které na tomto webu předává dál.

Rád vám pomůžu:

Kontakt Konzultace a služby Nabídka spolupráce