কঠোর সতর্কতা: কেবলমাত্র পরিবর্তনশীলগুলি রেফারেন্স দ্বারা পাস করা উচিত


21

আমি নিম্নলিখিত ত্রুটি পেয়েছি:

কঠোর সতর্কতা: কেবলমাত্র ভেরিয়েবলগুলি অন্তর্ভুক্ত () (/home/sites/dev/theparce/sites/all/themes/parce/ block-- block--3.tpl.php এর 18 লাইন) দ্বারা রেফারেন্স দ্বারা পাস করা উচিত।

এটি সেই ব্লক কোড যা এই ত্রুটি ঘটাচ্ছে।

if ($user_gallery) {
  print render(node_show($user_gallery));  // Line 18
  print drupal_render ($user_gallery_edit);

}
else {
  print drupal_render($user_gallery_new);
}

আমি প্রত্যাশা অনুযায়ী সমস্ত মুদ্রিত হয়ে গেলেও কেন আমি এই ত্রুটিটি পাই?

উত্তর:


52

এই ত্রুটিটি ঘটে যখন কোনও ফাংশন প্যারামিটার হিসাবে কোনও রেফারেন্সের প্রত্যাশা করে তবে এটি কোনও রেফারেন্স পাচ্ছে না।

আপনার ক্ষেত্রে, render()হিসাবে সংজ্ঞায়িত করা হয় render(&$element), কিন্তু node_show()হিসাবে সংজ্ঞায়িত করা হয় node_show($node, $message = FALSE), না &node_show($node, $message = FALSE)
একই হিসাবে সত্য হবে drupal_render(), যেহেতু ফাংশন হিসাবে সংজ্ঞায়িত করা হয় drupal_render(&$elements)

রেফারেন্স বাই পাসওয়ার্ড হিসাবে ব্যাখ্যা করা হয়েছে , যখন কোনও ফাংশনটির জন্য একটি রেফারেন্স প্যারামিটার প্রয়োজন হয়, আপনি ফাংশনটিতে যেতে পারেন:

  • ভেরিয়েবল (উদাহরণস্বরূপ, কোনও ফাংশনের ফলাফল সহ একটি অস্থায়ী পরিবর্তনশীল যা কোনও রেফারেন্স ফিরিয়ে দেয় না)

  • রেফারেন্সগুলি ফাংশন থেকে ফিরে আসে

অন্যান্য এক্সপ্রেশন ব্যবহার করে ফলাফলটি অপরিজ্ঞাত হয় এবং এটি পিএইচপি সংস্করণ থেকে নির্ভর করে।

  • render(node_show()) পিএইচপি 5.0.5 এ মারাত্মক ত্রুটি, পিএইচপি 5.1.1 এ একটি কঠোর মানের নোটিশ এবং পিএইচপি 7.0.0 এ একটি নোটিশ উত্পন্ন করে

  • render(5) মারাত্মক ত্রুটি সৃষ্টি করে

  • render(new DateTime()) পিএইচপি 7.0.7 এ একটি নোটিশ উত্পাদন করে

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