var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

var_exportBir değişkenin çözümlenebilir dizge gösterimini döndürür veya çıktılar

Açıklama

var_export(mixed$ifade, bool$döndür = false): ?string

var_export() işlevi belirtilen değişken hakkında yapı bilgisi döndürür. Dönen gösterimin geçerli bir PHP kodu olması dışında var_dump() işlevine benzer.

Bağımsız Değişkenler

ifade

Bilgi edinmek istenen değişken.

döndür

true belirtilmişse, var_export() işlevi değişken gösterimini çıktılamak yerine döndürür.

Bilginize:

Bu işlev bu bağımsız değişken ile bir dahili çıktı tamponu kullanır, dolayısıyla ob_start() geriçağırım işlevinin içinde kullanılamaz.

Dönen Değerler

döndür bağımsız değişkeninde true belirtildiğinde değişkenin gösterimini döndürür. Aksi takdirde null döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 Dışa aktarılan sınıf adları artık tamamen niteleniyor, evvelce baştaki ters eğik çizgi konulmazdı.
7.3.0 Artık stdClass nesneleri, mevcut olmayan stdClass::__setState() yöntemini kullanmak yerine nesneye dönüştürülmüş bir dizi olarak ((object) array( ... )) dışa aktarılıyor. Bunun uygulamadaki etkisi, stdClass'ın dışa aktarılabilmesi ve ortaya çıkan kodun PHP'nin önceki sürümlerinde bile çalışabilmesidir.

Örnekler

Örnek 1 - var_export() örnekleri

<?php
$a
= array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

Yukarıdaki örneğin çıktısı:

array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), )
<?php

$b
= 3.1;
$v = var_export($b, true);
echo
$v;

?>

Yukarıdaki örneğin çıktısı:

3.1

Örnek 2 - stdClass'ın dışa aktarılması (PHP 7.3.0'den beri)

Örnek 3 Exporting stdClass (since PHP 7.3.0)

<?php
$person
= new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

var_export($person);

Yukarıdaki örneğin çıktısı:

(object) array( 'name' => 'ElePHPant ElePHPantsdotter', 'website' => 'https://php.net/elephpant.php', )

Örnek 4 - Sınıfların dışa aktarılması

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Yukarıdaki örneğin çıktısı:

A::__set_state(array( 'var' => 5, ))

Örnek 5 - __set_state() kullanımı

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

Yukarıdaki örneğin çıktısı:

object(A)#2 (2) { ["var1"]=> int(5) ["var2"]=> string(3) "foo" }

Notlar

Bilginize:

resource türündeki değişkenler bu işlev ile çıktılanamaz.

Bilginize:

var_export() işlevi, döngüsel gönderimler için PHP'nin çözümlenebilir bir kod üretmesi imkansıza yakın olduğundan bu tür döngüler işleme sokulmaz. Bir dizi veya nesnenin dizgesel gösterimi üzerinde işlemler yapmak istiyorsanız serialize() işlevini kullanın.

Uyarı

PHP 8.2.0 öncesinde, var_export() nesneleri dışa aktarırken, azami uyumluluk için, isim alanlı sınıfların sınıf ismine baştaki ters eğik çizgileri dahil etmiyordu.

Bilginize:

var_export() tarafından üretilen kodu değerlendirebilmek için, işlenen tüm nesnelerin sihirli __set_state yöntemini gerçeklemesi gerekir. Tek istisnası, nesneye dönüştürülmüş bir dizi kullanılarak dışa aktarılan stdClass'tır.

Ayrıca Bakınız

  • print_r() - Bir değişkenin insanlarca okunabilecek gösterimini basar
  • serialize() - Bir değerin saklanabilir bir gösterimini üretir
  • var_dump() - Bir değişkenle ilgili bilgiyi dökümler
To Top