Var_dump, var_export এবং মুদ্রণ_r এর মধ্যে পার্থক্য


126

মধ্যে পার্থক্য কি var_dump, var_exportএবং print_r?


14
কখনও কখনও ম্যানুয়ালগুলি পড়ার পরে অন্য কাউকে আরও ভালভাবে বুঝতে জিজ্ঞাসা করা সহজ।
দীপক লমিছনে

11
@ আপনার কমন সেন্স এর উত্তরগুলি পিএইচপি ম্যানুয়ালের চেয়ে প্রায়শই পরিষ্কার, আরও সংক্ষিপ্ত, কার্যক্ষম এবং মূলত উল্লেখ করা সহজ are
মার্ক ফক্স

উত্তর:


194

var_dump ডিবাগিং উদ্দেশ্যে হয়। var_dumpসর্বদা ফলাফল মুদ্রণ।

// var_dump(array('', false, 42, array('42')));
array(4) {
  [0]=> string(0) ""
  [1]=> bool(false)
  [2]=> int(42)
  [3]=> array(1) {[0]=>string(2) "42")}
}

মুদ্রণ_আরটিও ডিবাগিং উদ্দেশ্যে, তবে সদস্যের ধরণটি অন্তর্ভুক্ত করে না। আপনি যদি আপনার অ্যারেতে থাকা উপাদানগুলির প্রকারগুলি জানেন তবে এটি ব্যবহার করা ভাল ধারণা, তবে অন্যথায় বিভ্রান্তিকর হতে পারে। print_rডিফল্টরূপে ফলাফল মুদ্রণ করে তবে insteadচ্ছিক$returnপরামিতিব্যবহার করে স্ট্রিং হিসাবে ফিরে আসতে দেয়।

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

var_export বৈধ পিএইচপি কোড প্রিন্ট করে। আপনি যদি কিছু মান গণনা করেন এবং ফলটিকে অন্য স্ক্রিপ্টের ধ্রুবক হিসাবে চান তবে দরকারী। নোট করুন যেvar_exportরেফারেন্স চক্র / পুনরাবৃত্তির অ্যারে পরিচালনা করতে পারে না, যেখানেvar_dumpএবংprint_rএগুলি পরীক্ষা করে দেখুন। var_exportডিফল্টরূপে ফলাফল মুদ্রণ করে তবে insteadচ্ছিক$returnপরামিতিব্যবহার করে স্ট্রিং হিসাবে ফিরে আসতে দেয়।

array (
  0 => '',
  1 => false,
  2 => 42,
  3 => array (0 => '42',),
)

ব্যক্তিগতভাবে, আমি মনে করি var_exportসংক্ষিপ্ত এবং সুনির্দিষ্ট সর্বোত্তম সমঝোতা।


51
মনে রাখবেন যে var_export, এর প্রকৃতির কারণে, পুনরাবৃত্তির অ্যারেগুলিতে একটি ভয়াবহ পুনরাবৃত্ত মৃত্যু ঘটবে। print_rএবং var_dump(যদিও, আধুনিক সম্পর্কে পুরোপুরি নিশ্চিত নয়, যেহেতু আমি সাধারণত এটি ব্যবহার করি না) সমস্যা নেই। সুতরাং করবেন না var_export($_GLOBALS);, উদাহরণস্বরূপ (যা এতে রয়েছে)। :)
গোলাপী গথিক

@ ফুটোটার আমি সর্বদা ভাবতাম মন্তব্যটি সেই কৌতূহলটি ভালভাবে ব্যাখ্যা করবে তবে আপনি সেখানে যান, উত্তরে একটি সংক্ষিপ্ত নোট যুক্ত করলেন।
ফিহাগ

1
এটি যুক্ত করা উচিত যে আপনি প্রিন্ট_আর () এবং var_export () আউটপুট না করে স্ট্রিংটি ফিরিয়ে আনতে পারবেন, যখন var_dump () এটি করতে পারে না। এছাড়াও, আমি ভ্যার_এক্সপোর্টকে পছন্দ করি না কারণ এটি বিভ্রান্তিকর - যদি আপনি কিছু অপরিজ্ঞাত ধ্রুবক SOMECONST রফতানি করার চেষ্টা করেন তবে আপনি কেবল 'SOMECONST' একটি পাঠ্য স্ট্রিং ফিরে পাবেন। সুতরাং এটি NULL, 0, "" বলবে না, তবে এটি আসলে এটি একটি স্ট্রিং ধরে নেবে (এবং আমি মনে করি এটিও একটি বিজ্ঞপ্তি ছুঁড়েছে)।
ব্যবহারকারীফিউজার

1
উদ্ধৃতি / ব্যাকস্ল্যাশ সুরক্ষার মতো স্ট্রিংকে নিরাপদে উপস্থাপনের জন্য var_export ভাল।
dkellner

1
ব্যক্তিগতভাবে আমি var_dumpআউটপুট পছন্দ করি । খুব খারাপ এটি স্ট্রিং হিসাবে আউটপুট ফেরত দেয় না। এর মতো উপরের মন্তব্যে আমি @ আইকনোক্লাস্টের অনুভূতির সাথে সম্পর্কিত হতে পারি। কিন্তু পছন্দ করে নিন থাকার var_exportউপর var_dumpএই ব্যবহারের ক্ষেত্রে আমার কাছে গ্রহণযোগ্য নয়। সম্পূর্ণতার জন্য, এই সম্পর্কিত বৈশিষ্ট্যটির অনুরোধটি নোট করুন ।
পল ভ্যান লিউউইন

3

var_dumpএবং এটি var_exportসম্পর্কিত ( ম্যানুয়াল থেকে )

var_export () প্রদত্ত ভেরিয়েবল সম্পর্কে কাঠামোগত তথ্য পায়। এটি একটি ব্যতিক্রম সহ var_dump () এর মতো: প্রত্যাবর্তন উপস্থাপনাটি বৈধ পিএইচপি কোড।

তারা এই থেকে পৃথক করে print_rযে var_dumpডেটাটাইপ এবং উপাদানগুলির আকারের মতো আরও তথ্য রফতানি করে।

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