পিএইচপি-তে প্রতিধ্বনি, মুদ্রণ এবং মুদ্রণ_র মধ্যে পার্থক্য কী?


197

আমি ব্যবহার করি echoএবং print_rঅনেক কিছুই, এবং প্রায় কখনও ব্যবহার করি না print

আমি মনে করি echoএকটি ম্যাক্রো এবং print_rএটি একটি উপনাম var_dump

তবে এটি পার্থক্য ব্যাখ্যা করার মানক উপায় নয়।


3
প্রিন্ট_আর হ'ল ভার_ডাম্পের একটি উপনাম নয় - এটি ভিন্ন ফর্ম্যাটে আউটপুট দেয়। উল্লেখযোগ্যভাবে, var_dump থেকে আউটপুট প্রতিটি ভেরিয়েবলের "টাইপ" অন্তর্ভুক্ত করে।
thomasrutter


যোগ করার আরেকটি বিশদ এবং এটি কার্যকর হতে পারে, এটি হ'ল var_dump খুব দীর্ঘ পাঠ্যকে ছাঁটাচ্ছে, দেখায় ... এবং অবশিষ্ট দৈর্ঘ্য নির্দেশ করে, উদাহরণস্বরূপ: এমনকি '... (দৈর্ঘ্য = 4482) আপনি যদি প্রতিধ্বনি ব্যবহার করেন তবে এটি ঘটে না this
ইওর্ডান

উত্তর:


186

printএবং echoকমবেশি একই রকম; তারা উভয়ই ভাষা গঠন যা স্ট্রিংগুলি প্রদর্শন করে। পার্থক্য সূক্ষ্ম আছেন: printতাই এটি এক্সপ্রেশন ব্যবহার করা যেতে পারে যেহেতু 1 একটি ফিরতি মূল্য আছে echoটি voidরিটার্ন টাইপ; echoএকাধিক প্যারামিটার নিতে পারে, যদিও এ জাতীয় ব্যবহার বিরল; echoতুলনায় কিছুটা দ্রুতprint । (ব্যক্তিগতভাবে আমি সর্বদা ব্যবহার করি echo, কখনই না print))

var_dumpকোনও ভেরিয়েবলের বিশদ ডাম্প প্রিন্ট করে, এর ধরণ এবং কোনও উপ-আইটেমের প্রকার সহ (যদি এটি অ্যারে বা কোনও বস্তু থাকে)। print_rআরও বেশি মানব-পঠনযোগ্য ফর্মটিতে একটি ভেরিয়েবল মুদ্রণ করে: স্ট্রিংয়ের উদ্ধৃতি দেওয়া হয় না, প্রকারের তথ্য বাদ দেওয়া হয়, অ্যারের আকার দেওয়া হয় না, ইত্যাদি

var_dumpprint_rআমার অভিজ্ঞতার তুলনায় সাধারণত ডিবাগ করার চেয়ে বেশি কার্যকর । এটি বিশেষত কার্যকর যখন আপনি নিজের ভেরিয়েবলের মান / প্রকারের ঠিক কী জানেন না। এই পরীক্ষা প্রোগ্রাম বিবেচনা করুন:

$values = array(0, 0.0, false, '');

var_dump($values);
print_r ($values);

সঙ্গে print_rআপনি মধ্যে পার্থক্য বলতে পারবে না 0এবং 0.0, বা falseএবং '':

array(4) {
  [0]=>
  int(0)
  [1]=>
  float(0)
  [2]=>
  bool(false)
  [3]=>
  string(0) ""
}

Array
(
    [0] => 0
    [1] => 0
    [2] => 
    [3] => 
)

1
ভাষার গঠন কী?
omg

1
@ শোর - এটি এমন কিছু যা ভাষায় নির্মিত যা কোনও ফাংশন নয়। এগুলি সাধারণত খুব দ্রুত এবং সাধারণ ফাংশনগুলির মতো ঠিক কাজ করে না।
অ্যালেক্স

3
এই মন্তব্যে চিহ্নিত ভুলত্রুটিগুলি সংশোধন করতে দুই বছর পরে সম্পাদিত। সমস্ত ধন্যবাদ, আমি অবশ্যই জুন 7 '10 এ ঘুমিয়ে ছিলাম। ;-)
জন কুগেলম্যান


5
দ্রুত, উকিলের মোবাইলে!
জন কুগেলম্যান

100

প্রতিধ্বনি

  • এক বা একাধিক স্ট্রিং কমা দ্বারা আলাদা করে আউটপুট দেয়
  • কোনও রিটার্নের মান নেই

    যেমন echo "String 1", "String 2"

ছাপা

  • শুধুমাত্র একটি একক স্ট্রিং আউটপুট দেয়
  • ফিরে আসে 1, তাই এটি একটি অভিব্যক্তি হিসাবে ব্যবহার করা যেতে পারে

    যেমন print "Hello"

    বা, if ($expr && print "foo")

print_r ()

  • যে কোনও একটি মানের একটি মানব-পঠনযোগ্য উপস্থাপনা ফলাফল
  • কেবল স্ট্রিংই নয় অ্যারে এবং অবজেক্টস সহ অন্যান্য ধরণের গ্রহণ করে, সেগুলি পাঠযোগ্য হতে ফর্ম্যাট করে
  • ডিবাগ করার সময় দরকারী
  • দ্বিতীয় alচ্ছিক আর্গুমেন্টটি দেওয়া হলে তার আউটপুটটিকে রিটার্ন মান হিসাবে (প্রতিধ্বনির পরিবর্তে) ফেরত দিতে পারে

, var_dump ()

  • কমা দ্বারা বিভক্ত এক বা একাধিক মানের একটি মানব-পঠনযোগ্য উপস্থাপনা ফলাফল
  • কেবল স্ট্রিংই নয় অ্যারে এবং অবজেক্টস সহ অন্যান্য ধরণের গ্রহণ করে, সেগুলি পাঠযোগ্য হতে ফর্ম্যাট করে
  • এর জন্য আলাদা আউটপুট ফর্ম্যাট ব্যবহার করে print_r(), উদাহরণস্বরূপ এটি মানগুলির প্রকারটিও প্রিন্ট করে
  • ডিবাগ করার সময় দরকারী
  • কোনও রিটার্নের মান নেই

var_export ()

  • মানব-পঠনযোগ্য এবং যে কোনও একটি মানের পিএইচপি-এক্সিকিউটেবল উপস্থাপনা ফলাফল আউটপুট করে
  • কেবল স্ট্রিংই নয় অ্যারে এবং অবজেক্টস সহ অন্যান্য ধরণের গ্রহণ করে, সেগুলি পাঠযোগ্য হতে ফর্ম্যাট করে
  • উভয়ই আলাদা আউটপুট ফর্ম্যাট ব্যবহার করে print_r()এবং var_dump()- ফলস্বরূপ আউটপুটটি বৈধ পিএইচপি কোড!
  • ডিবাগ করার সময় দরকারী
  • দ্বিতীয় alচ্ছিক আর্গুমেন্টটি দেওয়া হলে তার আউটপুটটিকে রিটার্ন মান হিসাবে (প্রতিধ্বনির পরিবর্তে) ফেরত দিতে পারে

মন্তব্য:

  • যদিও printএকটি অভিব্যক্তিতে ব্যবহার করা যেতে পারে, আমি তাদের লোকেদের এড়াতে পরামর্শ দিই, কারণ কোড পাঠযোগ্যতার পক্ষে এটি খারাপ (এবং কারণ এটি কখনই কার্যকর হওয়ার সম্ভাবনা কম)। অন্যান্য অপারেটরদের সাথে ইন্টারঅ্যাক্ট করার সময় অগ্রাধিকার নিয়মগুলি বিভ্রান্ত হতে পারে। এই কারণে, আমার ব্যক্তিগতভাবে কখনও এটি ব্যবহার করার কারণ নেই echo
  • যেখানে echoএবং printভাষা নির্মান হয়, print_r()এবং var_dump()/ var_export()নিয়মিত ফাংশন আছে। আপনার কাছে যুক্তিগুলি আবদ্ধ করার জন্য echoবা প্রথম বন্ধনী ব্যবহার করার প্রয়োজন নেই print(এবং আপনি যদি এটি ব্যবহার করেন তবে সেগুলি তাদের মত প্রকাশের মতো আচরণ করা হবে)।
  • যদিও var_export()আয় বৈধ পিএইচপি কোড মান যার ফলে পরে ফিরে পড়তে হবে উৎপাদন কোড এই উপর নির্ভর সহজে ব্যবহার করতে হবে কারণে নিরাপত্তা দুর্বলতা পরিচয় করিয়ে দিতে তুলতে পারে eval()। ফিরে মানগুলি সংরক্ষণ এবং পড়ার পরিবর্তে জেএসএনের মতো ফর্ম্যাট ব্যবহার করা ভাল। গতি তুলনাযোগ্য হবে।

3
আপনি যখন echo $a, $b;বাক্য তৈরি করতে চান ঠিক তখনই আপনি তা করতে চান echo $a . $b;: তবে $ a বা $ b যদি সত্যিই বড় স্ট্রিং হয় তবে পরবর্তীকৃত অতিরিক্ত স্মৃতি এবং সময়টিকে স্মৃতিতে স্ট্রিংগুলির পৃথক সংক্ষিপ্ত সংস্করণ তৈরি করার আগে ব্যবহার করবে হয় ব্রাউজারে আউটপুট শুরু করতে পারেন।
thomasrutter

অবশ্যই আপনি echo $a; echo $b;খুব ব্যবহার করতে পারে ।
থোমাস্রুটটার

16

কেবলমাত্র জন এর জবাব যুক্ত করতে , echoআপনি এই পৃষ্ঠায় সামগ্রী মুদ্রণ করতে ব্যবহার করতে পারেন use

printসামান্য ধীর। var_dump()এবং print_r()শুধুমাত্র ডিবাগ করার জন্য ব্যবহার করা উচিত।

এছাড়াও মূল্য উল্লেখ করে হয় print_r()এবং var_dump(), ডিফল্ট অনুসারে echo হবে একটি দ্বিতীয় যুক্তি যোগ print_r()সত্যতে অন্তত যে মূল্যায়ণ এটা, পরিবর্তে ফিরে যাওয়ার উদাঃ পেতে print_r($array, TRUE)

প্রতিধ্বনি এবং ফিরে আসার মধ্যে পার্থক্য হ'ল:

  • প্রতিধ্বনি: অবিলম্বে আউটপুট মান মুদ্রণ করবে।
  • ফিরে আসা: ফাংশনটির আউটপুটটিকে স্ট্রিং হিসাবে ফিরিয়ে দেবে। লগিং ইত্যাদির জন্য দরকারী

আপনি এই সমস্যাটিকে বাছাই করার কারণে, echoআইএনজি এবং returnআইএনএসের মধ্যে পার্থক্য কী ?
ডেভিড মনিকাকে

2
বাহ আমি প্রত্যাবর্তন প্যারামিটার সম্পর্কে জানতাম :( মূলত আপনি $ foo = মুদ্রণ_আর (ray অ্যারে, সত্য) করতে পারেন এবং এটি অন্য উপায়ে (একটি লগ, টেবিল ইত্যাদিতে) ব্যবহার করতে পারেন
ফ্রাইগুই

আমি print_rপিএইচপি কোড করার সময় আমি ফিরে আসা পরমকে বেশ ব্যবহার করেছি । যাইহোক, আমি লেখার ঝোঁক ছিল print_r( $foo, 1 );। এটি টাইপ করা ত্বরান্বিত;) এবং এ সম্পর্কে আমি পঠনযোগ্যতার বিষয়ে print_rখুব বেশি যত্ন করি না কারণ আমি দেখতে পাই যে নামটি খুব বর্ণনামূলক নয়।
exhuma

var_dump()দ্বিতীয় আর্গুমেন্টকে এটির মতো একটি মান ফেরত দেওয়ার অনুমতি দেয় না print_r()কারণ var_dump()আউটপুটটিতে একাধিক যুক্তি গ্রহণ করতে পারে।
থোমাস্রুটার

@ থমাসরুতার সত্য, আমি কেন এটি লিখেছি তা নিশ্চিত নন।
অ্যালেক্স

6
echo

রিটার্ন টাইপ না

print

রিটার্ন টাইপ আছে

print_r()

ফর্ম্যাট হিসাবে আউটপুট,


5

মধ্যে পার্থক্য প্রতিধ্বনি , মুদ্রণ , print_r এবং , var_dump খুবই সহজ।

প্রতিধ্বনি

প্রতিধ্বনি আসলে কোনও ফাংশন নয় তবে একটি ভাষা নির্মাণ যা আউটপুট মুদ্রণের জন্য ব্যবহৃত হয়। এটি মুদ্রণের তুলনায় সামান্য দ্রুত faster

echo "Hello World";    // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World

$var_1=55;
echo "$var_1";               // this will print 55
echo "var_1=".$var_1;        // this will print var_1=55
echo 45+$var_1;              // this will print 100

$var_2="PHP";
echo "$var_2";                   // this will print PHP

$var_3=array(99,98,97)           // Arrays are not possible with echo (loop or index  value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index  value required)

আপনি প্রথম বন্ধনীর সাথে বা ছাড়াই ইকো স্টেটমেন্ট ব্যবহার করতে পারেন

echo ("Hello World");   // this will print Hello World

ছাপা

যেমন ইকো কনস্ট্রাক্ট প্রিন্টও একটি ভাষা গঠন এবং বাস্তব ফাংশন নয়। মধ্যে পার্থক্য প্রতিধ্বনি এবং মুদ্রণ যে মুদ্রণ শুধুমাত্র একটি একক যুক্তি গ্রহণ করে এবং প্রিন্ট ফেরৎ 1. যেখানে সবসময় প্রতিধ্বনি কোন রিটার্ন মান আছে। সুতরাং মুদ্রণ বিবৃতি এক্সপ্রেশন ব্যবহার করা যেতে পারে।

print "Hello World";    // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1";               // this will print 55
print "var_1=".$var_1;        // this will print var_1=55
print 45+$var_1;              // this will print 100

$var_2="PHP";
print "$var_2";                   // this will print PHP

$var_3=array(99,98,97)           // Arrays are not possible with print (loop or index  value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index  value required)

প্রতিধ্বনির মতো , মুদ্রণটি প্রথম বন্ধনীর সাথে বা ছাড়া ব্যবহার করা যেতে পারে।

print ("Hello World");   // this will print Hello World

print_r

Print_r () ফাংশন একটি পরিবর্তনশীল সম্পর্কে তথ্য পাঠযোগ্য প্রিন্ট করতে ব্যবহৃত হয়। যদি আর্গুমেন্টটি একটি অ্যারে হয়, মুদ্রণ_r () ফাংশনটি তার কী এবং উপাদানগুলি (বস্তুর জন্য একই ) মুদ্রণ করে।

print_r ("Hello World");    // this will print Hello World

$var_1=55;
print_r ("$var_1");               // this will print 55
print_r ("var_1=".$var_1);        // this will print var_1=55
print_r (45+$var_1);              // this will print 100

$var_2="PHP";
print_r ("$var_2");                // this will print PHP

$var_3=array(99,98,97)             // this will print Array ( [0] => 1 [1] => 2 [2] => 3 ) 
$var_4=array("P"=>"3","J"=>"4");   // this will print  Array ( [P] => 3 [J] => 4 ) 

, var_dump

var_dump ফাংশনটি সাধারণত ডিবাগিংয়ের জন্য ব্যবহৃত হয় এবং ভেরিয়েবল / অ্যারে / অবজেক্ট সম্পর্কে তথ্য (প্রকার এবং মান) মুদ্রণ করে।

var_dump($var_1);     // this will print  int(5444) 
var_dump($var_2);     // this will print  string(5) "Hello" 
var_dump($var_3);     // this will print  array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } 
var_dump($var_4);     // this will print  array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }

3

প্রতিধ্বনি :

এটি বিবৃতি কোনও ফাংশন নয় কোনও রিটার্নের মান নেই

প্রথম বন্ধনী আবশ্যক নয়

অ্যারে প্রিন্ট করা হয় না

ছাপা

এটি বাস্তব ফাংশন

রিটার্ন টাইপ 1

প্রয়োজনীয় প্যারেন্টেসিস

অ্যারে প্রিন্ট করা হয় না

print_r

মানব পাঠযোগ্য বিন্যাসে মুদ্রণ করুন

স্ট্রিং কোটে নেই

প্রকারের মতো পরিবর্তনশীল সম্পর্কিত বিস্তারিত তথ্য নয় Not

, var_dump

ভেরিয়েবলের সমস্ত ডাম্পের তথ্য যেমন উপাদান এবং উপ উপাদানগুলির ধরণ


2
এই উত্তর সঙ্গে অনেক সমস্যা আছে। printহয় না একটি বাস্তব ফাংশন, এটি একটি ভাষা শুধু প্রতিধ্বনি মত কনস্ট্রাক্ট হয়। এটি বিবৃতি হিসাবেও ব্যবহার করা যেতে পারে। echoহয় না এক বিবৃতিতে না এটা এক ব্যবহার করা যাবে। printপ্রথম বন্ধনী প্রয়োজন হয় না , না হয় ইকো বা মুদ্রণ হয় কোন ফাংশন মত প্রথম বন্ধনী ব্যবহার। আপনি মূল পার্থক্যগুলির মধ্যে একটিও মিস করেছেন - প্রতিধ্বনি একাধিক স্ট্রিং কমা দ্বারা পৃথক প্রতিধ্বনি গ্রহণ করে।
থোমাস্রুটার

2
... এবং আপনি এই উত্তরটি জমা দিয়েছিলেন যখন বেশ কয়েকটি উত্তর ইতিমধ্যে বিদ্যমান এবং সঠিক তথ্য রয়েছে।
থোমাস্রুটার

2

** ইকোকান একাধিক এক্সপ্রেশন গ্রহণ করে যখন মুদ্রণ করতে পারে না। Print_r () পিএইচপি ফাংশনটি মানব পাঠযোগ্য আকারে একটি অ্যারে ফিরিয়ে আনতে ব্যবহৃত হয়। এটি কেবল হিসাবে লেখা হয়

![Print_r ($your_array)][1]

2

প্রতিধ্বনি: প্রতিধ্বনি এমন একটি ভাষা রচনা যেখানে এটির সাথে প্রথম বন্ধনী ব্যবহার করার প্রয়োজন নেই এবং এটি বেশ কয়েকটি সংখ্যক পরামিতি নিতে পারে এবং শূন্য ফিরে আসতে পারে।

   void echo (param1,param2,param3.....);

   Example: echo "test1","test2,test3";

মুদ্রণ: এটি এমন একটি ভাষা নির্মাণ যা যেখানে প্রথম বন্ধনী ব্যবহার করার দরকার নেই এটি কেবল একটি প্যারামিটার নিয়ে ফিরে আসে

    1 always.

           int print(param1);

           print "test1";
           print "test1","test2"; // It will give syntax error

প্রিন্ট: এটি একটি ফাংশন যা কমপক্ষে একটি স্ট্রিং এবং ফর্ম্যাট শৈলী নেয় এবং আউটপুট স্ট্রিংয়ের দৈর্ঘ্য দেয় returns

    int printf($string,$s);

    $s= "Shailesh";
    $i= printf("Hello %s how are you?",$s);    
    echo $i;

    Output : Hello Shailesh how are you?
             27



   echo returns void so its execution is faster than print and printf


0

মুদ্রণ_আর () মান মুদ্রণ করতে পারে তবে দ্বিতীয় পতাকা প্যারামিটারটি পাস হয়ে গেলে এবং সত্য হয় - এটি স্ট্রিং হিসাবে মুদ্রিত ফলাফলকে ফিরিয়ে দেবে এবং কিছুই স্ট্যান্ডার্ড আউটপুটকে প্রেরণ করবে না। Var_dump সম্পর্কে। যদি এক্সডিবেগ ডিবাগার ইনস্টল থাকে তবে আউটপুট ফলাফলগুলি আরও বেশি পঠনযোগ্য এবং বোধগম্য উপায়ে ফর্ম্যাট করা হবে।


-1

তারা উভয়ই ভাষা গঠন। প্রতিধ্বনিকে শূন্য করে এবং মুদ্রণের রিটার্ন দেয় ১। প্রতিধ্বনিকে প্রিন্টের চেয়ে কিছুটা দ্রুত বিবেচনা করা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.