php var_dump () vs print_r ()


297

Bir diziyi dize olarak tükürmek arasındaki var_dump()ve print_r()arasındaki fark nedir ?

Yanıtlar:


355

var_dumpFonksiyon görüntüler onun dahil değişkenler / ifadeler hakkında bilgi yapılı tip ve değerde . Diziler, yapıyı göstermek için girintili değerler ile özyinelemeli olarak araştırılır. Ayrıca hangi dizi değerlerinin ve nesne özelliklerinin referans olduğunu da gösterir.

print_r()İnsanlar tarafından okunabilir olan şekilde bir değişken hakkında bilgileri görüntüler. dizi değerleri, anahtarları ve öğeleri gösteren bir biçimde sunulur . Benzer gösterim nesneler için de kullanılır.

Misal:

$obj = (object) array('qualitypoint', 'technologies', 'India');

var_dump($obj) Ekranda aşağıdaki çıktı görüntülenir.

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "India"
}

Ve, print_r($obj)aşağıdaki çıktıyı ekranda gösterecektir.

stdClass Object ( 
 [0] => qualitypoint
 [1] => technologies
 [2] => India
)

Daha fazla bilgi


76
print_r (null) ayıklarken yararlıdır var_dump (null) döner NULL olarak hiçbir şey dönecektir
rosh3000

7
Cevabınızı 'var_export' ile uzatabilir misiniz?
joryl

1
Var_dump () yönteminin iki avantajı, dökülen bilgilerin otomatik olarak bir ön öğeye eklenmiş olmasıdır. Var_dump () kullanırken her türün kendi rengi olduğunu görebilirsiniz. Okunabilirliği artırır.
Julian

3
@Julian sadece xdebug yüklüyse
Leif Neland

57

Genel olarak, print_r( )çıktı daha hoş, daha özlü ve okunması daha kolaydır, yani daha insan tarafından okunabilir ancak veri türlerini gösteremez.

İle print_r()çıktıyı bir değişkene de kaydedebilirsiniz:

$output = print_r($array, true);

bu var_dump()yapamaz. Ancak var_dump()veri türlerini gösterebilir.


9
var_dump () biraz daha çirkin olsa da bir değişkende saklanabilir: stackoverflow.com/questions/139474/…
SgtPooki

7
tasarruf etmeniz gerekiyorsa 'kardeş' var_export () da yapabilirsiniz
CSᵠ

21

var_dump() size o şeyin türünü ve içinde ne olduğunu gösterecektir.

Yani => (string)"var" Örnek burada.

print_r() sadece içeriği çıkarır.

Output => "var" Örnek burada.


12
Bence daha iyi bir örnek var_dump(0.0);hangi çıktılar float(0)vs print_r(0.0);hangi çıkışlar 0(bu nedenle olası tür karışıklığı yol açar)
olurdu

13

Neyi ne zaman kullanmanız gerektiğini soruyorsanız, genellikle print_r()değerleri görüntülemek ve var_dump()değişken türleriyle ilgili sorunlar için kullanırım.


8

var_dumpnesne / değişken hakkında yapılandırılmış bilgileri görüntüler. Buna tür ve değerler dahildir . Gibi print_rdiziler yoluyla recursed ve girintilendirilir.

print_rdiziler ve nesneler için anahtarlar ve öğeler sunan bir formatla değerler hakkında okunabilir bilgiler görüntüler .

Dikkat edilmesi gereken en önemli şey var_dump, çıktı türünün yanı sıra değerlerin print_rçıkmayacağıdır.


5

var_dumpVe arasındaki önemli farklılıklarprint_r

her iki işlev de değişken hakkında bilgi verir , ancak var_dumpbirden çok parametre dökülür; burada print_rilk parametre dökümü yapmak istediğiniz değişken, ikincisi boole değeri olan iki parametre alabilir.

var_dumpherhangi bir değeri döndüremezse, değerleri ikinci print_rolarak true olarak ayarlarsak print_r değişken bilgilerini döndürebildiğinde değerleri dökebilir / yazdırabilir . Dönen değer print_rolacaktır dize biçimi.

Tarafından yazdırılan bilgiler print_r, var_dumpham değerleri yazdırırken okunabilir biçimde çok daha fazladır .

print_rişlevi, var_dumpesas olarak değer döndüremediği için hata ayıklama amacıyla kullanılabilecek birçok bağlamda kullanılabilir.


1
vardumpbir veya daha fazla argüman alır ve her biri dökülür.
bishop

@bishop, evet haklısın daha fazla argüman alabilir, ancak herhangi bir değer döndürmez
Akshay Khale

yani cevabını düzelt?
Govind Rai

@GovindRai
Akshay Khale

"var_dump herhangi bir değer döndüremiyor"? Evet yapabilir. Tür. ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty

3

Ben de bir tarayıcıya çıkış yaparken bir ön etikete var_dump () veya printr çıktı koyarak tavsiye ederim .

print "<pre>";
print_r($dataset);
print "</pre>";

Daha okunabilir bir sonuç verecektir.


2

var_dump($var) ek ayrıntılar sağlayarak ayrıntılı ayrıntıları gösterir

  • değerin veri türü (alt öğeler dahil)
  • Değişkendeki eleman sayısı
  • değerin uzunluğu

1

Büyük dizilerle, print_r kullanışlı olandan çok daha fazla bilgi gösterebilir. İlk 2000 karakteri veya ihtiyacınız olan birçok karakteri göstererek bu şekilde kısaltabilirsiniz.

  echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";

1

var_dump (): -

  1. Bu işlev, türünü ve değerini içeren bir veya daha fazla ifade hakkında yapılandırılmış bilgileri görüntüler. Diziler ve nesneler, yapıyı göstermek için girintili değerler ile özyinelemeli olarak araştırılır.
  2. Bu işlev, bir değişken içindeki eleman sayısını görüntüler.
  3. Bu işlev değişkenin uzunluğunu gösterir.
  4. Değeri döndüremiyorum sadece değeri yazdırın.
  5. hata ayıklama amacıyla kullanılır.

Misal :-

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

çıktı :-

   array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

print_r (): -

  1. Bir değişken hakkında okunabilir bilgileri yazdırır.
  2. Değişkendeki öğe sayısını var_dump () olarak görüntülemez.
  3. Değişken uzunluğunu var_dump () olarak görüntülemez.
  4. Printf_r () öğesinde ikinci parametreyi true olarak ayarlarsak değeri döndürün.

Misal :-

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

Çıktı:-

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

"Değeri döndüremiyorum sadece değeri yazdırın." Evet yapabilir. Tür. ob_start(); var_dump($var); $dump=ob_get_clean();
Sinus Mackowaty

0

print_r () ve var_dump (), PHP'de hata ayıklama amacıyla kullanılan Dizi hata ayıklama işlevleridir. print_r () işlevi dizi anahtarlarını ve üyelerini Dizi ([anahtar] = değer) olarak döndürürken, var_dump () işlevi de veri türü ve uzunluğu olan dizi anahtarlarıyla dizi listesini döndürür, örneğin Array (array_length) {[0] = string (1 A'}.


0

Var_dump ile birden fazla parametre iletebiliriz:

var_dump("array1",$array1,"array2",$array2);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.