php var_dump () बनाम print_r ()


297

बीच क्या अंतर है var_dump()और print_r()स्ट्रिंग के रूप में एक सरणी बाहर थूकना के मामले में?

जवाबों:


355

var_dumpसमारोह को प्रदर्शित करता है के बारे में अपने सहित चर / भाव जानकारी संरचित प्रकार और मूल्य । एरर्स को संरचना दिखाने के लिए प्रेरित मूल्यों के साथ पुनः खोज की जाती है। यह यह भी दर्शाता है कि कौन से सरणी मान और ऑब्जेक्ट गुण संदर्भ हैं।

print_r()एक तरीका है कि मनुष्यों द्वारा पठनीय है में एक चर के बारे में जानकारी प्रदर्शित करता है। सरणी मान एक प्रारूप में प्रस्तुत किए जाएंगे जो कुंजियाँ और तत्व दिखाता है । वस्तुओं के लिए समान संकेतन का उपयोग किया जाता है।

उदाहरण:

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

var_dump($obj) स्क्रीन में आउटपुट के नीचे प्रदर्शित होगा।

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

और, print_r($obj)स्क्रीन में आउटपुट के नीचे प्रदर्शित होगा।

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

और जानकारी


76
print_r (null) कुछ भी नहीं लौटाएगा जहाँ var_dump (null) रिटर्न NULL है जो डिबगिंग के समय उपयोगी है
rosh3000

7
क्या आप 'var_export' के साथ अपने उत्तर का विस्तार कर सकते हैं?
joryl

1
Var_dump () के दो फायदे यह है कि डंप की गई जानकारी स्वचालित रूप से एक पूर्व तत्व में संलग्न है। Var_dump () का उपयोग करते समय आप देख सकते हैं कि प्रत्येक प्रकार का अपना रंग है। पठनीयता बढ़ाना।
जूलियन

3
@ जुलियन केवल अगर xdebug स्थापित किया गया है
Leif Neland

57

आम तौर पर, print_r( )आउटपुट अच्छे होते हैं, अधिक संक्षिप्त और पढ़ने में आसान होते हैं, उर्फ ​​अधिक मानव-पठनीय लेकिन डेटा प्रकार नहीं दिखा सकते हैं।

इसके साथ print_r()आप आउटपुट को एक चर में स्टोर कर सकते हैं:

$output = print_r($array, true);

जो var_dump()नहीं कर सकता। फिर भी var_dump()डेटा प्रकार दिखा सकते हैं।


9
var_dump () को एक चर में संग्रहित किया जा सकता है, हालांकि यह थोड़ा बदसूरत है: stackoverflow.com/questions/139474/…
SgtPooki

7
अगर आपको बचत की जरूरत है तो आप 'भाई' var_export () भी कर सकते हैं
CS

21

var_dump() आपको उस चीज़ के प्रकार के साथ-साथ उसमें क्या है, यह भी दिखाएगा।

तो आपको मिलेगा => (string)"var" उदाहरण यहाँ है।

print_r() केवल सामग्री का उत्पादन करेगा।

होगा आउटपुट => "var" उदाहरण यहाँ है।


12
मुझे लगता है कि बेहतर उदाहरण यह होगा कि var_dump(0.0);कौन से आउटपुट float(0)बनाम print_r(0.0);कौन से आउटपुट 0(इसलिए संभव प्रकार भ्रम की ओर ले जाते हैं) ...
ircmaxell

13

यदि आप पूछ रहे हैं कि आपको कब उपयोग करना चाहिए, तो मैं आम तौर पर print_r()मूल्यों को प्रदर्शित करने के लिए और var_dump()चर प्रकार के मुद्दों के लिए उपयोग करता हूं ।


8

var_dumpवस्तु / चर के बारे में संरचित जानकारी प्रदर्शित करता है। इसमें प्रकार और मान शामिल हैं। जैसे print_rसरणियों के माध्यम से और इंडेंट किया जाता है।

print_rमानों के बारे में मानवीय पठनीय जानकारी प्रदर्शित करता है जिसमें एरे और ऑब्जेक्ट्स के लिए कीज़ और एलीमेंट्स मौजूद होते हैं।

नोटिस करने के लिए सबसे महत्वपूर्ण बात यह है var_dumpकि आउटपुट प्रकार के साथ-साथ मान print_rभी नहीं होगा।


5

var_dumpऔर के बीच महत्वपूर्ण अंतरprint_r

दोनों फ़ंक्शन चर के बारे में जानकारी डंप करते हैं , लेकिन var_dumpकई पैरामीटर जो डंप किए जाएंगे, जहां print_rदो पैरामीटर ले सकते हैं जिसमें से पहला पैरामीटर वह चर है जिसे आप डंप करना चाहते हैं और दूसरा एक बूलियन मान है।

var_dumpकिसी भी मूल्य यह केवल डंप / मूल्यों जहां print_r के रूप में चर जानकारी लौट सकते हैं अगर हम के दूसरे पैरामीटर सेट मुद्रित कर सकते हैं वापस नहीं लौट सकते print_rकरने के लिए सही । का लौटा मान स्ट्रिंग प्रारूप print_rमें होगा ।

द्वारा मुद्रित जानकारी print_rपठनीय प्रारूप में बहुत अधिक है जहां var_dumpकच्चे मूल्यों को प्रिंट करता है।

print_rफ़ंक्शन का उपयोग कई संदर्भों में किया जा सकता है जहां var_dumpमुख्य रूप से डीबगिंग उद्देश्यों में उपयोग किया जा सकता है क्योंकि यह मूल्य वापस नहीं कर सकता है।


1
vardumpएक या अधिक तर्क लेता है, और प्रत्येक को डंप किया जाएगा।
बिशप

@ बिशप, हाँ आप सही हैं यह अधिक तर्क ले सकता है, लेकिन यह किसी भी मूल्य पर वापस नहीं आता है
अक्षय खले

तो अपना उत्तर ठीक करो?
गोविंद राय

यह तय है @ गोविंदराय
अक्षय खले

"var_dump कोई मान नहीं लौटा सकता है"? हाँ यह कर सकते हैं। किंडा। ob_start(); var_dump($var); $dump=ob_get_clean();
1938 में साइनस मैककॉटी

3

जब मैं ब्राउज़र पर आउटपुट कर रहा हूं, तो मैं पूर्व में var_dump () या प्रिंटर का आउटपुट डालने की सलाह दूंगा ।

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

अधिक पठनीय परिणाम देगा।


2

var_dump($var) अतिरिक्त विवरण प्रदान करके गहराई से विवरण दिखाता है

  • मूल्य का डेटा प्रकार (वंश तत्वों सहित)
  • एक चर में तत्वों की संख्या
  • मान की लंबाई

1

बड़े सरणियों के साथ, print_r उपयोगी होने की तुलना में कहीं अधिक जानकारी दिखा सकता है। आप इसे इस तरह से छोटा कर सकते हैं, जिसमें पहले 2000 वर्ण या फिर बहुत से जो आपको चाहिए।

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

1

var_dump (): -

  1. यह फ़ंक्शन एक या अधिक अभिव्यक्तियों के बारे में संरचित जानकारी प्रदर्शित करता है जिसमें इसके प्रकार और मूल्य शामिल हैं। एरर्स और ऑब्जेक्ट्स को संरचना दिखाने के लिए प्रेरित मूल्यों के साथ पुन: खोज की जाती है।
  2. यह फ़ंक्शन किसी चर में तत्व की संख्या प्रदर्शित करता है।
  3. यह फ़ंक्शन चर की लंबाई प्रदर्शित करता है।
  4. मान वापस नहीं कर सकते केवल मान मुद्रित करें।
  5. यह डिबगिंग उद्देश्य के लिए उपयोग किया जाता है।

उदाहरण :-

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

आउटपुट: -

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

प्रिंट_आर (): -

  1. एक चर के बारे में मानव-पठनीय जानकारी प्रिंट करता है।
  2. किसी चर में तत्व की संख्या को var_dump () के रूप में प्रदर्शित नहीं किया जाता है।
  3. वेरिएबल में वैरिएबल की लंबाई नहीं है जैसा कि var_dump ()।
  4. यदि हम printf_r () में दूसरे पैरामीटर को सही पर सेट करते हैं तो मान लौटाएँ।

उदाहरण :-

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

आउटपुट: -

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

"मान वापस नहीं कर सकता केवल मूल्य प्रिंट करें।" हाँ यह कर सकते हैं। किंडा। ob_start(); var_dump($var); $dump=ob_get_clean();
साइनस मैकॉवेती 19

0

print_r () और var_dump () Array डिबगिंग फ़ंक्शन हैं जो PHP में डीबगिंग उद्देश्य के लिए उपयोग किए जाते हैं। Print_r () फ़ंक्शन सरणी कुंजी और उसके सदस्यों को Array ([key] = value) के रूप में लौटाता है जबकि var_dump () फ़ंक्शन सरणी सूची को डेटा प्रकार और लंबाई के साथ सरणी सरणी के साथ देता है जैसे Array (array_length) {0} = string (1) 'एक'}।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.