PHP funkce var_export()

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

Potřebujete poradit s PHP?

Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo přes Skype.

Napište mi: jan@barasek.com
Lektor: Jan Barášek

Pomohl Vám tento článek?

TopList counter