প্রয়োজনীয়, অন্তর্ভুক্ত, প্রয়োজনীয়_অনস এবং অন্তর্ভুক্ত_অনসের মধ্যে পার্থক্য?


1213

পিএইচপি-তে:

  • আমি কখন requireবনাম ব্যবহার করা উচিত include?
  • আমি কখন require_onceবনাম ব্যবহার করা উচিত include_once?

3
পিএইচপি কোডস্নিফার বলেছেন, ফাইলটি শর্তযুক্তভাবে অন্তর্ভুক্ত করা হলে, অন্তর্ভুক্ত_অনস (প্রয়োজনীয়_অনসের পরিবর্তে) ব্যবহার করুন।
ফরহাদ

উত্তর:


1426

আছে requireএবং include_onceপাশাপাশি।

সুতরাং আপনার প্রশ্ন করা উচিত ...

  1. আমি কখন requireবনাম ব্যবহার করা উচিত include?
  2. কখন আমার require_onceবনাম ব্যবহার করা উচিত?require

1 এর উত্তর এখানে বর্ণিত হয়েছে

প্রয়োজনীয় () ফাংশনটি () অন্তর্ভুক্ত করার জন্য অভিন্ন, এটি ভিন্নভাবে ত্রুটিগুলি পরিচালনা করে। যদি কোনও ত্রুটি দেখা দেয় তবে অন্তর্ভুক্ত () ফাংশনটি একটি সতর্কতা উত্পন্ন করে তবে স্ক্রিপ্টটি কার্যকর করা চালিয়ে যাবে। প্রয়োজনীয় () একটি মারাত্মক ত্রুটি তৈরি করে এবং স্ক্রিপ্টটি বন্ধ হয়ে যায়।

2 এর উত্তর এখানে পাওয়া যাবে

প্রয়োজনীয়_অেন্স () বিবৃতিটি () প্রয়োজনের অনুরূপ, পিএইচপি ব্যতীত ফাইলটি ইতিমধ্যে অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করবে এবং যদি তা হয় তবে এটি আবার অন্তর্ভুক্ত (প্রয়োজনীয়) না করে।


58
যে মাইন্ডের প্রয়োজন () প্রয়োজন_অনসে () এর চেয়ে দ্রুত সম্পাদন করে, তাই আপনি যদি নিশ্চিত হন যে কোনও সদৃশ নেই তবে ব্যবহারের প্রয়োজন রয়েছে ()।
ডায়ালাক

48
@ ডিএলেক্স, প্রয়োজনীয়_অনসেস ধীর, তবে প্রায় পরিমাপযোগ্য নয়।
অধ্যাপক ফ্যালকেন চুক্তি

77
@ ডাইএলেক্স ... এবং যদি দেখা যায় যে ফাইলটি ইতিমধ্যে অন্তর্ভুক্ত require_once()রয়েছে তবে দুটির চেয়ে দ্রুততর হবে
টম

11
@ অধ্যাপকফ্যালকেন কোন পরিস্থিতিতে একাধিকবার একই ফাইলের প্রয়োজন হয় ?? আমি আমার বর্তমান মানসিকতার মধ্যে একটি সম্পর্কে ভাবতে পারি না।
ওয়েশি জেং

17
ওয়েব পৃষ্ঠাগুলির জন্য উইশিজেং, এইচটিএমএল স্নিপেটগুলি থাকতে পারে যা আপনি একাধিকবার অন্তর্ভুক্ত করতে চান।
জেমস বেনঞ্জার

406

ব্যবহার

  • আপনার অ্যাপ্লিকেশন দ্বারা
    যখন ফাইলের প্রয়োজন হয় তখন প্রয়োজন , উদাহরণস্বরূপ একটি গুরুত্বপূর্ণ বার্তা টেমপ্লেট বা কনফিগারেশন ভেরিয়েবলযুক্ত একটি ফাইল যা অ্যাপ্লিকেশনটি ব্রেক করবে না।

  • প্রযোজনা_অনসেস
    যখন ফাইলটিতে এমন অন্তর্ভুক্ত থাকে যা পরবর্তী অন্তর্ভুক্তিতে একটি ত্রুটি তৈরি করে, যেমন function important() { /* important code */}আপনার অ্যাপ্লিকেশনটিতে অবশ্যই প্রয়োজন হয় তবে যেহেতু ফাংশনগুলি পুনরায় ঘোষিত করা যায় না তা আবার যুক্ত করা উচিত নয়।

  • অন্তর্ভুক্ত কখন ফাইলটি প্রয়োজন হয় না এবং আবেদন প্রবাহ যখন পাওয়া যেমন চালিয়ে যাওয়া উচিত,
    বর্তমান সুযোগ বা কিছু থেকে ভেরিয়েবল উল্লেখ টেমপ্লেটের জন্য মহান

  • _চ্ছিক
    নির্ভরতা অন্তর্ভুক্ত যা পরবর্তী লোড বা ত্রুটিযুক্ত রিমোট ফাইল অন্তর্ভুক্তিতে ত্রুটি তৈরি করবে যা HTTP ওভারহেডের কারণে আপনি দুবার ঘটতে চান না

তবে মূলত, কখন ব্যবহার করবেন তা আপনার বিষয়।


আমার পিডিও-সংযোগ রয়েছে (ডাটাবেসে) । আমার কোনটি ব্যবহার করা উচিত? include? include_once? require? require_once?
শাফিজাদেহ

6
এটি স্বীকৃত উত্তর হওয়া উচিত কারণ এটি সংক্ষিপ্তভাবে প্রশ্নের উত্তর দেয় এবং অফিসিয়াল ম্যানুয়ালটিতে লিঙ্ক দেয়, অন্য উত্তরগুলির পরিবর্তে কেবল ডাব্লু 3 স্কুলগুলিকে সংযুক্ত করে।
ড্যানিয়েল ডাব্লু।

9
আমাকে কারণ দিন কেন এটি প্রয়োজনীয় না হলে আপনি এটি অন্তর্ভুক্ত করবেন?
ফ্রান্সিসকো ওচোয়া

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

301

আমার পরামর্শটি কেবলমাত্র require_once99.9% সময় ব্যবহার করা ।

ব্যবহার requireবা includeপরিবর্তে যে বোঝা আপনার কোড পুনর্ব্যবহারযোগ্য অন্যত্র, অর্থাত্ যে স্ক্রিপ্ট আপনি কাছে করছি আসলে নয় চালানো তৈরীর পরিবর্তে কোড প্রাপ্তিসাধ্য একটি বর্গ বা কিছু ফাংশন লাইব্রেরি।

যদি আপনার প্রয়োজন হয় / কোড সহ যে ঘটনাস্থলে কার্যকর হয়, এটি প্রক্রিয়াজাতীয় কোড এবং আপনার একটি নতুন দৃষ্টান্ত জানতে হবে । অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, ফাংশন-ভিত্তিক প্রোগ্রামিং বা ফাংশনাল প্রোগ্রামিংয়ের মতো।

আপনি যদি ইতিমধ্যে ওও বা ক্রিয়ামূলক প্রোগ্রামিং করে থাকেন include_onceতবে ব্যবহার করা বেশিরভাগ ক্ষেত্রেই বিলম্ব হতে চলেছে যেখানে স্ট্যাকের মধ্যে আপনি বাগ / ত্রুটি খুঁজে পান find আপনি কী জানতে চান যে ফাংশনটি do_cool_stuff()যখন আপনি পরে এটির জন্য কল করতে যান তখন পাওয়া যায় না বা আপনি যে মুহুর্তটি লাইব্রেরির প্রয়োজনে এটি উপলব্ধ হওয়ার প্রত্যাশা করেন? সাধারণত, আপনার প্রয়োজন এবং প্রত্যাশিত কিছু না পাওয়া গেলে অবিলম্বে জানা ভাল, তাই কেবল ব্যবহার করুন require_once

বিকল্পভাবে, আধুনিক ওওপি-তে, কেবলমাত্র আপনার ক্লাসগুলি ব্যবহারের পরে চালিত করুন।


41
+1 এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। মূল বিষয়গুলি includeহ'ল পরিবারটি সাধারণত একটি সম্পূর্ণ খারাপ ধারণা (কারণ এটি বিদ্যমান না থাকার কোনও সম্ভাবনা রয়েছে এমন ফাইলগুলি অন্তর্ভুক্ত করা খুব বিরল), এবং এটির বাইরে require_onceএবং require, আপনার ব্যবহার করা উচিতrequire_once যখন যে ফাইল সহ সংজ্ঞায়িত ফাংশন বা ক্লাস হতে অন্য কোথাও ব্যবহৃত হয় বা ডাটাবেস সংযোগের বস্তুর মতো সিঙ্গেলন ইনস্ট্যান্ট করে এবং requireফাইল অন্তর্ভুক্ত করার সাথে সাথে স্টাফ করে এমন ফাইলগুলি অন্তর্ভুক্ত করার জন্য ব্যবহার করে । যে কোনও বৃহত ওয়েব অ্যাপ্লিকেশনে, পরবর্তী ধরণের অন্তর্ভুক্তটি অস্বাভাবিক।
এমেরি

7
+1 (আরও একটি সোনার ব্যাজ রয়েছে;)) সম্মত হন যে সংবেদনশীলভাবে require_onceসম্ভবত বেশিরভাগ সময় ব্যবহার করা প্রার্থী। পছন্দগুলির মধ্যে ছোট ছোট ওভারহেড পার্থক্য দেওয়া, requireস্ক্রিপ্ট থামানো নিশ্চিত করে, আমি অনেকগুলি পরিস্থিতিতে ভাবতে পারি না যেখানে কোনও ফাইল অন্তর্ভুক্ত না করে কোনও অ্যাপ্লিকেশন বেঁচে থাকতে পারে। এবং _onceডুপ ইস্যু থেকে রক্ষা করে। যে কেউ দ্বিমত পোষণ করতে পারে তারা জানে যে তারা কী করছে তা অ্যাপ্লিকেশন বা দৃশ্যের জন্য উপযুক্ত যে কোনওটি চয়ন করতে পারে।
জেমস

আরে আমার কাছে এমন একটি ফাইল রয়েছে যা মাঝে মাঝে সূচী পৃষ্ঠায় অন্তর্ভুক্ত থাকে এবং ম্যান টাইমকে সরাসরি (home.php) বলা হয় ........... এখন আমি ইতিমধ্যে সূচী পৃষ্ঠায় কনফিগারেশন ফাইলটি অন্তর্ভুক্ত করেছি এখন প্রয়োজনীয় প্রয়োজনটি ব্যবহার করতে পারি পুনরায় অন্তর্ভুক্ত প্রতিরোধের জন্য home.php এ
রবীন্দ্র পায়েল

@ রবীন্দ্রপায়াল ওয়েল, আমার প্রথম পরামর্শ হ'ল ফ্রন্ট-কন্ট্রোলার ব্যবহার করে নিজেকে মাথা ব্যথা বাঁচানো! যেহেতু কোনও ব্যবহারকারী উদাহরণ.কমকে কল করে তার অর্থ আপনার সম্পূর্ণ পৃথক হোম.এফপি থাকা উচিত নয়! পরিবর্তে / হোম / কেবল সূচি.ফ্প বা ফ্রন্ট.এফপি এর সামনের নিয়ামক দিয়ে যেতে হবে। কেবলমাত্র পিএইচপি সত্যিই ওল্ডস্কুলের "প্রতি পৃষ্ঠায় একটি স্ক্রিপ্ট" এর চেয়ে আরও বেশি কিছু পাওয়ার অনুমতি দেয় এবং আমাকে বিশ্বাস করুন, এটি সর্বোত্তম উপায় নয়। তবে আপনার যদি পৃথক home.php এবং index.php থাকা আবশ্যক, তবে যা কিছু করা উচিত তা কোনও লাইব্রেরির ফাইল বা টেম্পলেটে থাকতে হবে, ../templates/home.tpl বা ../view/home.view.php তুমি জান?
Kzqai

এর এসএনএস এবং আমি প্রাথমিকভাবে সহজ বিকাশের জন্য একটি ফাইলের একটি পৃষ্ঠার পদ্ধতির চয়ন করি এবং এটি পুনরায় তৈরি করতে পারি না এমন ফাইলগুলির একটি বৃহত স্ট্যাক এবং এখন আমি সেই সমস্যার সমাধান করেছি এবং একটি ফাইলের একটি পৃষ্ঠা করার অন্য কারণ হ'ল গতি এবং হার্ড ডিস্কের সাথে কম যোগাযোগ contact হ্রাস সংখ্যা অন্তর্ভুক্ত
রবীন্দ্র পায়েল

36

_অনস ফাংশন এবং _অনস ফাংশন ব্যতীত পার্থক্য: বিন্যাস ছাড়াই পুনরায় অন্তর্ভুক্ত করা হবে যদিও পিচপি পিছু পিছু পিএনপি অন্তর্ভুক্ত ফাইলগুলিতে নজর রাখে এবং কেবল একবার অন্তর্ভুক্ত করবে।

প্রয়োজন এবং অন্তর্ভুক্ত মধ্যে পার্থক্য: একটি প্রয়োজনীয় ফাইল খুঁজে পাওয়া যায় নি পিএইচপি একটি মারাত্মক ত্রুটি নির্গত করবে যখন অন্তর্ভুক্ত শুধুমাত্র একটি সতর্কতা নির্গত হবে।


1
বাহ সংক্ষিপ্ত এবং সহজ!
ভ্লাদ

31

include() যদি এটি ফাইলটি অন্তর্ভুক্ত না করতে পারে তবে একটি সতর্কতা নিক্ষেপ করবে, তবে স্ক্রিপ্টের বাকী অংশটি চলবে।

require() একটি নিক্ষেপ করা হবে E_COMPILE_ERROR এবং স্ক্রিপ্টটি থামিয়ে দেবে যদি এতে ফাইলটি অন্তর্ভুক্ত না করা যায়।

দ্য include_once()require_once()যদি ইতিমধ্যে অন্তর্ভুক্ত করা থাকে এবং ফাংশনগুলি ফাইলটিকে দ্বিতীয়বার অন্তর্ভুক্ত করবে না।

নিম্নলিখিত ডকুমেন্টেশন পৃষ্ঠা দেখুন:


22

যখনই আপনি যখন require_once()ব্যবহার করছেন তখন অন্য ফাইল অন্তর্ভুক্ত করার জন্য একটি ফাইলের মধ্যে ব্যবহার করা যেতে পারে যখন আপনার বর্তমান ফাইলে কেবলমাত্র একবারে ডাকা ফাইলটির প্রয়োজন হয়। এখানে উদাহরণ হিসাবে আমি একটি test1.php আছে।

<?php  
echo "today is:".date("Y-m-d");  
?>  

এবং অন্য একটি ফাইলের মধ্যে আমি টেস্ট 2.php নামকরণ করেছি

<?php  
require_once('test1.php');  
require_once('test1.php');  
?>

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

আপনি যখনই 'অন্তর্ভুক্ত_আঁস () ব্যবহার করছেন তখন যখনই বর্তমান ফাইলে একাধিকবার কল করা ফাইলের প্রয়োজন হবে তখন অন্য কোনও ফাইল অন্তর্ভুক্ত করার জন্য কোনও ফাইল ব্যবহার করা যেতে পারে। এখানে উদাহরণে আমার কাছে একটি ফাইল আছে যা test3.php নামে আছে।

<?php  
echo "today is:".date("Y-m-d");  
?> 

এবং অন্য একটি ফাইল যা আমি test4.php নামকরণ করেছি

<?php  
include_once('test3.php');  
include_once('test3.php');  
?>

আপনি টেস্ট 3 ফাইল সহ মিটি দেখছেন যে ফাইলটি একবারে অন্তর্ভুক্ত করবে তবে পরবর্তী কার্যনির্বাহীকরণ বন্ধ করবে।


'পরামর্শের চেয়ে উদাহরণ'
রমেশ কিথসিরি হেতিআরাচি

19

পুনরায় ব্যবহারযোগ্য পিএইচপি টেম্পলেটগুলির জন্য "অন্তর্ভুক্ত" ব্যবহার করুন । প্রয়োজনীয় লাইব্রেরির জন্য "প্রয়োজনীয়" ব্যবহার করুন।

"* একমাত্র" দুর্দান্ত, কারণ এটি ফাইলটি ইতিমধ্যে লোড হয়েছে কিনা তা যাচাই করে তবে এটি কেবল "প্রয়োজনীয়_অন্সে" তে আমার জন্য বোধগম্য।


18

আপনার ক্লাস এবং ফাংশন সংজ্ঞা ফাইলগুলিতে সংগঠিত রাখা উচিত।

নির্ভরতা (শ্রেণি, ফাংশন, ধ্রুবক) require_once()লোড করতে ব্যবহার করুন ।

টেমপ্লেটের মতো ফাইলগুলিrequire() লোড করতে ব্যবহার করুন ।

include_once()Depend চ্ছিক নির্ভরতা (শ্রেণি, ফাংশন, ধ্রুবক) লোড করতে ব্যবহার করুন ।

include()Load চ্ছিক টেম্পলেট-মতো ফাইল লোড করতে ব্যবহার করুন ।


16

2018 এর জন্য 7 বছর পরে একটি উত্তর

এই প্রশ্নটি সাত বছর আগে জিজ্ঞাসা করা হয়েছিল, এবং কোনও উত্তরই এই প্রশ্নের জন্য ব্যবহারিক সহায়তা দেয় না। আধুনিক পিএইচপি প্রোগ্রামিংয়ে আপনি সাধারণত required_onceনিজের অটোলোডার ক্লাসটি অন্তর্ভুক্ত করার জন্য কেবল একবার ব্যবহার করেন (প্রায়শই সুরকার অটোলোডার), এবং এটি আপনার সমস্ত শ্রেণি এবং ফাংশন লোড করে দেবে ( composer.jsonসমস্ত ফাইলগুলিতে উপলভ্য হওয়ার জন্য ফাংশন ফাইলগুলিতে স্পষ্টভাবে সংযোজন করা দরকার )। যদি কোনও কারণে আপনার শ্রেণি অটোলোডার থেকে লোডযোগ্য না হয় আপনি require_onceএটি লোড করতে ব্যবহার করেন।

কিছু অনুষ্ঠান রয়েছে যা আমাদের ব্যবহার করা উচিত require। উদাহরণস্বরূপ, আপনার যদি সত্যিই বড় অ্যারে সংজ্ঞা থাকে এবং আপনি এটি আপনার শ্রেণীর সংজ্ঞা উত্স কোডটিতে যুক্ত করতে চান না আপনি পারেন:

 <?php
// arr.php
return ['x'=>'y'];

 <?php
//main.php
$arr= require 'arry.php'

আপনি যে ফাইলটি অন্তর্ভুক্ত করতে ইচ্ছুক সেই ফাইলটিতে যদি নির্বাহযোগ্য কিছু থাকে বা আপনাকে প্রায় সবসময় ব্যবহারের প্রয়োজন হয় এমন কিছু ভেরিয়েবল ঘোষণা করে requireকারণ আপনি যদি require_onceপ্রথম স্থান বাদে ব্যবহার করেন তবে আপনার কোডটি কার্যকর করা হবে না এবং / অথবা আপনার ভেরিয়েবল নিঃশব্দে আরম্ভ করবে না, ফলে বাগগুলি সৃষ্টি হয় ইঙ্গিত করা একেবারে শক্ত।

এটির জন্য কোনো ব্যবহারিক প্রয়োগের ক্ষেত্রে দেখা যায় includeএবং include_onceসত্যিই।


অটোলোডার উল্লেখ করার জন্য +1। তবে শেষ বাক্যটি বিতর্কিত। বেশিরভাগ ক্ষেত্রে আপনি include()আপনার টেম্প্লেটিং ইঞ্জিনটি প্রয়োগ করতে আউটপুট বাফারে আবৃত একটি ব্যবহার করেন ।
হ্যাজ

এছাড়াও, আধুনিক পাঠ্য সম্পাদক এবং আধুনিক পিএইচপি দেওয়া, প্রায় কেউই require()বড় ফাইলগুলি বিভক্ত করতে ব্যবহার করে না।
হ্যাজ

require_onceকোনও ফাংশনের ভিতরে পিএইচপিমেইলার ব্যবহার করার সময় আমি একই সমস্যার মুখোমুখি হয়েছিলাম এবং আমার অটোলোডার $mailকোডের পরে প্রয়োজনীয় ভেরিয়েবলটি সংজ্ঞায়িত করে , তাই পরবর্তীটি require_onceউপেক্ষা করা যায়, যা $mailআরম্ভ করা হয়নি! সমাধানটি ছিল কেবল requireফাংশন কল করার পরে ব্যবহার করা।
ইউসুফ

@haz এরকম কোনও কারণ নেই যা আপনি ব্যবহার requireকরেন না ?
পিএইচপিস্টে

পুনঃটুইট
পিএইচপিস্ট

15

পার্থক্য হ'ল কমান্ডগুলি তৈরি করা ত্রুটিতে। এর সাথে require, আপনি যে ফাইলটি ব্যবহার করতে চান তা সত্যই প্রয়োজনীয় এবং E_ERRORএটি যদি খুঁজে না পাওয়া যায় তবে এটি উত্পন্ন করে ।

require()include() ব্যর্থতা ব্যতীত এটির মতোই এটি মারাত্মক E_ERROR স্তরের ত্রুটি তৈরি করবে ।

include শুধুমাত্র একটি উত্পন্ন E_WARNINGকম বেশি নীরব থাকলে ব্যর্থ হলেই ত্রুটি ।

সুতরাং ফাইলটি যদি বাকী কোডটি কাজ করার প্রয়োজন হয় এবং আপনি স্ক্রিপ্টটি ফাইলটি ব্যর্থ করতে চান তবে এটি ব্যবহার করুন।


এর জন্য *_once():

include_once() কোনও স্ক্রিপ্টের নির্দিষ্ট প্রয়োগের সময় একই ফাইলটি একাধিকবার অন্তর্ভুক্ত ও মূল্যায়ন করা হতে পারে এমন ক্ষেত্রে ব্যবহার করা যেতে পারে, সুতরাং এই ক্ষেত্রে এটি ফাংশন পুনরায় সংজ্ঞা, ভেরিয়েবল মান পুনর্বিন্যাস ইত্যাদির মতো সমস্যা এড়াতে সহায়তা করতে পারে where

require_once()অবশ্যই অবশ্যই প্রযোজ্য ।


রেফারেন্স: require(),include_once()


requireE_COMPILE_ERROR দেয়, E_ERROR নয়।
ইউশা আলেয়ুব

দেখে মনে হচ্ছে এটি গত 7 বছরে পরিবর্তিত হয়েছে।
ফেলিক্স ক্লিং

9

প্রয়োজনীয়তার সাথে ফাইলটি অবশ্যই উপস্থিত থাকতে হবে, যদি তা না হয় তবে একটি ত্রুটি প্রদর্শিত হবে; যেখানে অন্তর্ভুক্ত রয়েছে - যদি ফাইলটি না থাকে তবে পৃষ্ঠাটি লোড করা চালিয়ে যাবে।


8

অনুমোদনের মতো সমালোচনামূলক অংশ প্রয়োজন এবং অন্যান্য সমস্তগুলি অন্তর্ভুক্ত করে।

একাধিক অন্তর্ভুক্ত কেবল খুব খারাপ ডিজাইন এবং এড়াতে অবশ্যই এড়ানো উচিত। সুতরাং, * _আনস আসলেই কিছু যায় আসে না।


7

অন্তর্ভুক্ত করুন / দরকার আপনি একই ফাইল একবার এছাড়াও চেয়ে বেশি অন্তর্ভুক্ত করতে পারে:

() অন্তর্ভুক্ত করার জন্য প্রয়োজনীয় () অনুরূপ ব্যর্থতা ব্যতীত এটি একটি মারাত্মক E_COMPILE_ERROR স্তর ত্রুটিও তৈরি করবে। অন্য কথায় এটি স্ক্রিপ্টটি থামিয়ে দেবে যেখানে অন্তর্ভুক্ত রয়েছে () কেবলমাত্র একটি সতর্কতা (E_WARNING) প্রকাশ করে যা স্ক্রিপ্টটি চালিয়ে যাওয়ার অনুমতি দেয়।

need_once / સમાવેશ_once

পিএইচপি বাদে অন্তর্ভুক্ত / প্রয়োজনীয়তা সমান, ফাইলটি ইতিমধ্যে অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করবে এবং যদি তা হয় তবে এটি আবার অন্তর্ভুক্ত (প্রয়োজনীয়) করবে না।


5

include()এটি কোনও ফাইল না পেলে একটি সতর্কতা তৈরি করবে, তবে require_once()মারাত্মক ত্রুটি ঘটবে।

ফাইলটি এর আগে অন্তর্ভুক্ত করা হলে আর একটি বিষয়। তারপরে require_once()এটি আবার অন্তর্ভুক্ত করবে না।


5

আমি নীচের মত ফাংশন ব্যবহার করছিলাম:

function doSomething() {
    require_once(xyz.php);
    ....
}

Xyz.php এ ধ্রুবক মান ঘোষণা করা হয়েছিল।

আমাকে অন্য পিএইচপি স্ক্রিপ্ট ফাইল থেকে এই ডোজ কিছু () ফাংশন কল করতে হবে।

তবে লুপে এই ফাংশনটি কল করার সময় আমি আচরণটি পর্যবেক্ষণ করেছি, প্রথম পুনরাবৃত্তির জন্য ডসোমথিং () এর মধ্যে স্থির মান পাওয়া যাচ্ছিল xyz.phpতবে পরে প্রতিটি পুনরাবৃত্তি doSomething()স্থির মানগুলিতে ঘোষণা করতে সক্ষম হয় নিxyz.php

আমি থেকে সুইচিং দ্বারা আমার সমস্যার সমাধান require_once()করার জন্য include(), আপডেট doSomething()কোড নিচে দেওয়া হল:

function doSomething() {
    include(xyz.php);
    ....
}

এখন প্রতিটি পুনরাবৃত্তির কলটি doSomething()স্থির মানগুলিতে সংজ্ঞায়িত হয় xyz.php


4

ম্যানুয়াল থেকে :

require()include()ব্যর্থতা ব্যতীত এটির মতোই এটি মারাত্মক E_COMPILE_ERRORস্তরের ত্রুটি তৈরি করবে । অন্য কথায়, এটি স্ক্রিপ্টটি থামিয়ে দেবে যেখানে include()কেবলমাত্র একটি সতর্কতা প্রেরণ করা হয় ( E_WARNING) যা স্ক্রিপ্টটি চালিয়ে যেতে দেয়।

_once()বৈকল্পিকের ক্ষেত্রেও একই কথা ।


4

PSR-0 / PSR-4অটোলয়েডারদের যুগে, বিবৃতিগুলির কোনওটি ব্যবহার করা সম্পূর্ণরূপে অপ্রয়োজনীয় হতে পারে আপনার প্রয়োজন অনুসারে আপনার কোডটিতে কিছু ফাংশন / ক্লাস সরবরাহ করা প্রয়োজন (অবশ্যই, আপনি এখনও require_onceআপনার বুটস্ট্র্যাপ ফাইল এবং includeটেম্পলেটগুলিতে স্বয়ংক্রিয়ভাবে চালিত হওয়া প্রয়োজন যদি আপনি এখনও পিএইচপি টেম্পলেট ইঞ্জিন হিসাবে ব্যবহার করুন)।


3

 

  1. যখন ব্যবহার করা উচিত requireবা include?

    requireএবং includeফাংশন একই কাজের, অর্থাত্ অন্তর্ভুক্ত এবং নির্বাচিত ফাইল মূল্যায়ণ না, কিন্তু পার্থক্য আছে requireএকটি মারাত্মক ত্রুটি হবে যখন নির্বাচিত ফাইল অবস্থান অবৈধ বা যেহেতু কোন ভুল হয়include একটি সতর্কবার্তা উৎপন্ন এবং কোড এক্সিকিউশন অব্যাহত থাকবে।

    সুতরাং আপনি requireযে ফাইলটি অন্তর্ভুক্ত করার চেষ্টা করছেন সেটি হ'ল সিস্টেমের কেন্দ্রস্থল এবং বাকী কোডটিতে একটি বিশাল প্রভাব ফেলতে পারে এবং আপনি এটি ব্যবহার করতে পারেন সেই ক্ষেত্রে আপনি ফাংশনটি ব্যবহার করতে পারেনinclude যে ফাইলটি অন্তর্ভুক্ত করার চেষ্টা করছেন সেটি হ'লে আপনি ফাংশনটি কিছু কম গুরুত্বপূর্ণ কোড সহ সাধারণ ফাইল।

    এবং আমার ব্যক্তিগত প্রস্তাবনাটি (কম গুরুত্বপূর্ণ কোডের জন্য) requireআপনার কোডের বিকাশের পর্যায়ে থাকাকালীন সর্বত্র ফাংশনের জন্য যাওয়া যেমন আপনি কোডটি ডিবাগ করতে পারেন এবং পরে উত্পাদনে নিয়ে যাওয়ার আগে requireফাংশন দ্বারা সমস্ত ফাংশন প্রতিস্থাপন includeকরতে পারেন যদি আপনি মিস করেন তবে যে কোনও বাগ এটি শেষ ব্যবহারকারীর উপর প্রভাব ফেলবে না এবং বাকী কোডটি সঠিকভাবে কার্যকর করে ...

  2. যখন কোন ব্যবহার করা উচিত require_onceবাrequire?

    মধ্যে মৌলিক পার্থক্য requireএবং require_onceহয় require_onceকিনা ফাইল আগে থেকেই অন্তর্ভুক্ত বা করা হয় না তা চেক করবে যদি এটি ইতিমধ্যেই তারপর অন্তর্ভুক্ত করা হয় এটা যেহেতু ফাইল অন্তর্ভুক্ত করবে নাrequire ফাংশন ফাইল কিনা ফাইল আগে থেকেই অন্তর্ভুক্ত করা হয় নির্বিশেষে বা না অন্তর্ভুক্ত করা হবে।

    আপনি যদি কোডের কিছু অংশ বারবার requireঅন্তর্ভুক্ত করতে চান তবে আপনি যদি আবার আপনার কোডটিতে কিছু কোড অন্তর্ভুক্ত করতে চান তবে ব্যবহার করুন require_once


2
  1. আপনার যখন কোনও শ্রেণি, ফাংশন বা নির্ভরতা লোড করতে হয় তখন ব্যবহারের জন্য ফাংশন প্রয়োজন।

  2. আপনি যখন টেমপ্লেট-স্টাইলযুক্ত ফাইলটি লোড করতে চান তখন ব্যবহারের মধ্যে ফাংশন অন্তর্ভুক্ত থাকে

আপনি যদি এখনও বিভ্রান্ত হয়, শুধু ব্যবহার Require_once সব সময়ের জন্য।


1

এগুলি ফাইল সহ সমস্ত উপায়।

প্রয়োজন মানে এটির প্রয়োজন। Require_once এর অর্থ এটির প্রয়োজন হবে তবে এটি কেবল একবার প্রয়োজন। অন্তর্ভুক্ত করার অর্থ এটি কোনও ফাইল অন্তর্ভুক্ত করবে তবে এটি চালিয়ে যাওয়ার দরকার নেই।

উদাহরণ:

Require 'filename'
Require_once 'filename'
Include 'filename'

এখানে একটি অন্তর্ভুক্ত_অনসেস ফাংশন রয়েছে যা একবার কোনও ফাইল অন্তর্ভুক্ত করে।

Include_once 'filename'

আমার ফোন থেকে টাইপ করার সময় আমার কাছে থাকা বড় বড় অক্ষরগুলি ব্যবহার করবেন না।


1

একটি জিনিস আমি লক্ষ্য করেছি, অন্তর্ভুক্ত ব্যবহার করার সময় আমি কেবল অন্তর্ভুক্ত ফাইল থেকে অন্তর্ভুক্ত ফাইল ফাংশন অ্যাক্সেস করতে পারি। প্রয়োজনীয়_অনসেসের সাহায্যে, আমি দ্বিতীয় ফাংশন_অনসেস ফাইলে সেই ফাংশনটি চালাতে পারি।

এছাড়াও: আমি যুক্ত করার পরামর্শ দিই

if(file_exists($RequiredFile)){
    require_once($RequiredFile);
}else{
  die('Error: File Does Not Exist');
}

কারণ যখন প্রয়োজনীয়_অ্যান্স পৃষ্ঠাটি হত্যা করে, এটি কখনও কখনও আপনার ওয়েবসাইট ফাইলগুলির ডিরেক্টরি প্রতিধ্বনি করতে পারে

এখানে ফাইলগুলি প্রয়োজনের জন্য তৈরি করা একটি কাস্টম ফাংশন রয়েছে:

function addFile($file, $type = 'php', $important=false){
    //site-content is a directory where I store all the files that I plan to require_once
    //the site-content directory has "deny from all" in its .htaccess file to block direct connections
    if($type && file_exists('site-content/'.$file.'.'.$type) && !is_dir('site-content/'.$file.'.'.$type)){
        //!is_dir checks that the file is not a folder
        require_once('site-content/'.$file.'.'.$type);
        return 'site-content/'.$file.'.'.$type;
    }else if(!$type && file_exists('site-content/'.$file) && !is_dir('site-content/'.$file)){
        //if you set "$type=false" you can add the file type (.php, .ect) to the end of the "$file" (useful for requiring files named after changing vars)
        require_once('site-content/'.$file);
        return 'site-content/'.$file;
    }else if($important){
        //if you set $important to true, the function will kill the page (which also prevents accidentally echoing the main directory path of the server)
        die('Server Error: Files Missing');
        return false;
    }else{
        //the function returns false if the file does not exist, so you can check if your functions were successfully added
        return false;
    }
}

ব্যবহারের উদাহরণ:

$success = addFile('functions/common');

if($success){
    commonFunction();
}else{
    fallbackFunction();
}

0

মূলত, আপনার যদি কোনও ভুল পথের প্রয়োজন হয়, পিএইচপি মারাত্মক ত্রুটি ছুঁড়ে দেয় এবং শাটডাউন ফাংশন বলা হয়, তবে আপনি যখন কোনও ভুল পথ অন্তর্ভুক্ত করেন, পিএইচপি বাস্তবায়ন চালিয়ে যাবে, তবে এটি কেবল একটি সতর্কতা প্রদর্শন করবে যে ফাইলটি বিদ্যমান নেই।

প্রয়োজনীয় ইংরেজী শব্দ থেকে , পিএইচপিকে বলা হয় যে পৃষ্ঠা বা ফাইলটির সম্পাদন প্রয়োজনীয় ফাইলের উপর নির্ভর করে।

আমার অভিজ্ঞতা থেকে, কনফিগারেশন ফাইল, ডাটাবেস ক্লাস এবং অন্যান্য গুরুত্বপূর্ণ ইউটিলিটিগুলির মতো গুরুত্বপূর্ণ ফাইলগুলির প্রয়োজনীয় হওয়া স্বাভাবিক।


0

আপনি শর্তাধীন কোনও ক্লায়েন্ট লাইব্রেরি লোড করতে চান, বা আপনি এটি ব্যবহার করতে যাচ্ছেন কিনা তা এগিয়ে যান এবং এটি লোড করতে চান তা প্রায়শই ব্যাপার।

এখানে দৃ concrete় উদাহরণ; পিসিজে কী বলেছে তা বিশদ দিয়ে।

বলুন যে আপনার কাছে আপনার ডাটাবেস ব্যবহারকারীর নাম এবং পাসওয়ার্ড (conf.php) সংরক্ষণ করার একটি কনফিগারেশন ফাইল রয়েছে:

<?php
//my site configuration file

//For Database
$location='localhost';
$dbuser='yourname';
$userpw='yourpassword';
$database='nameofdatabase';
?>

এবং একটি স্ট্যাটিক ফাংশন সহ একটি বর্গ যা ডেটাবেস ব্যবহার করে:

<?php
class UsedInLoop {
    public static function databaseQuery(){
        require(/path/to/conf.php);                //require_once will not work here
        $db = new mysqli($location, $dbuser, $userpw, $database);
        //yada yada yada
    }
}
?>

এবং সেই স্ট্যাটিক ফাংশনটি অন্য ফাংশনের অভ্যন্তরে ব্যবহৃত হয় যা লুপের অভ্যন্তরে পুনরাবৃত্তি বলা হয়:

<?php
require_once('path/to/arbitraryObject.php');  //either will likely be OK at this level
$obj = new arbitraryObject();
foreach($array as $element){
    $obj->myFunction();
}
?>

আপনি কেবল একবার ক্লাসের প্রয়োজন / অন্তর্ভুক্ত করতে পারেন। যদি আপনার লুপের প্রতিটি পুনরাবৃত্তিতে এটির প্রয়োজন / অন্তর্ভুক্ত করা হয় তবে আপনি একটি ত্রুটি পাবেন। যাইহোক, প্রতিবার স্ট্যাটিক ফাংশন বলার সময় আপনার কনফ ফাইলটি আপনাকে অন্তর্ভুক্ত করতে হবে।

<?php
class arbitraryObject {
    public function myFunction(){
        require_once(/path/to/UsedInLoop.php);   //This must be require_once. require() will not work
        UsedInLoop::databaseQuery();
    }
}
?>

অবশ্যই, এটিকে ফাংশনের বাইরে নিয়ে যাওয়া সেই সমস্যার সমাধান হতে পারে:

<?php
require(/path/to/UsedInLoop.php);   //now require() is fine   
class arbitraryObject {
    public function myFunction(){
        UsedInLoop::databaseQuery();
    }
}
?>

আপনি যদি কোনও শ্রেণি লোড করার ওভারহেডের সাথে উদ্বিগ্ন না হন যা কেবলমাত্র কিছু নির্দিষ্ট শর্তে ব্যবহৃত হতে পারে এবং যখন না হয় তখন এটি লোড করতে চাই না।


-1

requireএর চেয়ে বেশি ওভারহেড রয়েছে include, যেহেতু এটির আগে ফাইলটি বিশ্লেষণ করতে হবে। প্রতিস্থাপন করা হচ্ছে requiresসঙ্গে includesপ্রায়ই একটি ভাল অপ্টিমাইজেশান কৌশল।


2
আমি জানি এটি দেরি করে দেওয়া মন্তব্য, তবে এটি আসলে সত্য নয়। requireফাইলের চেয়ে আর পার্স করে না include। এই _onceফাংশনগুলির প্রতিটিগুলির সংস্করণগুলির মধ্যে কিছুটা ওভারহেড থাকে তবে অন্যরা যেমন বলেছিলেন এটি বেশিরভাগ অ্যাপ্লিকেশনগুলিতে নগন্যতার কাছাকাছি।
ahouse101

-2

শুধু ব্যবহার প্রয়োজন এবং অন্তর্ভুক্ত।

কারণ কীভাবে অন্তর্ভুক্ত_অনসেস বা প্রয়োজনীয়_অনসেস দিয়ে কাজ করবেন তা ভাবেন। এটি লগ ডেটা খুঁজছে যা অন্তর্ভুক্ত বা প্রয়োজনীয় পিএইচপি ফাইলগুলি সংরক্ষণ করে। সুতরাং এটি অন্তর্ভুক্ত এবং প্রয়োজনের চেয়ে ধীর।

if (!defined(php)) {
    include 'php';
    define(php, 1);
}

ঠিক এর মতো ব্যবহার করা হচ্ছে ...

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