Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में echo, print, और print_r का अंतर


PHP में output के तीन मुख्य constructs: echo, print, और print_r()।

त्वरित तुलना

विशेषताechoprintprint_r()
TypeLanguage constructLanguage constructFunction
Return valueकोई नहीं (void)हमेशा 1true (या string यदि second param true)
ParametersMultiple (comma separated)Single expressionVariable + optional return flag
Output styleRaw outputRaw outputStructured, human-readable
Arrays/Objects❌ "Array" / "Object"❌ "Array" / "Object"✅ Full structure
Speedसबसे तेज़थोड़ा धीमाधीमा (formatting के कारण)

echo - Simple Output

<?php
// Multiple arguments (comma) - no parentheses needed
echo 'Hello', ' ', 'World', PHP_EOL; // Hello World

// Variables
$name = 'अमित';
echo "नमस्ते, $name!"; // नमस्ते, अमित!

// Cannot use in expression context
// $result = echo 'test'; // Parse error!

print - Expression Context में उपयोगी

<?php
// Single argument
print 'Hello World'; // 1 return करता है

// Expression में उपयोग कर सकते हैं
$result = print "Hello"; // $result = 1, prints "Hello"

// Ternary में
$condition && print "Condition met\n"; // Short-circuit: prints only if true

// लेकिन multiple arguments नहीं
// print 'a', 'b'; // Parse error!

print_r() - Debugging के लिए Structured Output

<?php
$arr = ['name' => 'अमित', 'age' => 25, 'skills' => ['PHP', 'Python']];

// Default: direct output
print_r($arr);
/*
Array
(
    [name] => अमित
    [age] => 25
    [skills] => Array
        (
            [0] => PHP
            [1] => Python
        )
)
*/

// Second parameter true = return string
$output = print_r($arr, true);
file_put_contents('debug.log', $output);

// Objects के लिए भी
class User {
    public $name = 'अमित';
    private $password = 'secret';
}
print_r(new User());
// Shows all properties (including private in PHP 5+)

var_dump() vs print_r()

पहलूvar_dump()print_r()
Type informationहाँ (int, string, length, आदि)नहीं
Null valuesस्पष्ट रूप से दिखाता हैखाली दिख सकता है
Booleanbool(true)1 / खाली
ResourceResource ID दिखाता हैResource ID दिखाता है
Recursion protectionहाँहाँ

Modern Alternatives (PHP 7+)

<?php
// JSON encoding (APIs, logs के लिए)
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

// var_export (valid PHP code)
echo var_export($data, true);

// Debug libraries: Symfony VarDumper, Laravel dd()
// dump($data); // Symfony - beautiful, collapsible
// dd($data);   // Laravel - dump and die

सर्वोत्तम अभ्यास

  • Production output: echo (fastest, no return value overhead)
  • Expression context: print (rarely needed)
  • Debugging arrays/objects: print_r() या var_dump()
  • Logging/Storage: print_r($var, true) या var_export($var, true)
  • API responses: json_encode()
  1. डायरेक्टएक्स 11 और डायरेक्टएक्स 12 में क्या अंतर है? डायरेक्टएक्स 11 और डायरेक्टएक्स 12 में क्या अंतर है?

    डायरेक्टएक्स एपीआई का एक संग्रह है, या एप्लिकेशन प्रोग्रामिंग इंटरफेस, जिसका उपयोग सॉफ्टवेयर द्वारा मल्टीमीडिया सामग्री को रेंडर करने और ग्राफिकल हार्डवेयर के साथ संचार करने के लिए किया जाता है। डायरेक्टएक्स का प्रमुख घटक एपीआई, डायरेक्ट3डी, सॉफ्टवेयर और ग्राफिक्स हार्डवेयर के बीच संचार को संभालता ह

  1. - C# में डिक्लेरेशन और डेफिनिशन में अंतर

    डिक्लेरेशन (घोषणा) और डेफिनिशन (परिभाषा/आरंभीकरण) अलग-अलग अवधारणाएं हैं। वेरिएबल्स // डिक्लेरेशन - केवल नाम और टाइप int x; // डेफिनिशन/इनिशियलाइजेशन - मान निर्दिष्ट x = 10; // संयुक्त int y = 20; ऐरे // डिक्लेरेशन int[] n; // इनिशियलाइजेशन - मेमोरी आवंटन n = new int[10]; // असाइनमेंट - एलिमें

  1. - C# में float, double और decimal के बीच अंतर

    Float, double और decimal C# में सभी वैल्यू टाइप्स हैं। वैल्यू टाइप वेरिएबल्स को सीधे वैल्यू असाइन की जा सकती है। वे System.ValueType क्लास से डेराइव्ड हैं। वैल्यू टाइप्स सीधे डेटा समाहित करते हैं। Float वैल्यू टाइप Float एक 32-बिट सिंगल-प्रिसिजन फ्लोटिंग पॉइंट टाइप है जिसकी रेंज 3.4 x 1038 से + 3.4