পিএইচপি-তে __DIR__ এবং dirname (__ ফাইল__) এর মধ্যে কি কোনও পার্থক্য রয়েছে?


122

এটি আমার কাছে দেখতে একই রকম, তবে আমি নিশ্চিত নই,

কারণ অনেকগুলি প্রকল্প রয়েছে যা ব্যবহার করে dirname(__FILE__)

উত্তর:


189

তাদের ফলাফল ঠিক একই ; সুতরাং, যে কোন পার্থক্য।


উদাহরণস্বরূপ, নিম্নলিখিত দুটি লাইন:

var_dump(dirname(__FILE__));
var_dump(__DIR__);

উভয় একই আউটপুট দেবে:

string '/home/squale/developpement/tests/temp' (length=37)


তবে, কমপক্ষে দুটি পার্থক্য রয়েছে:

  • __DIR__কেবলমাত্র পিএইচপি> = 5.3 এর সাথে উপস্থিত রয়েছে
    • যে কারণে dirname(__FILE__)আরও বেশি ব্যবহৃত হয়
  • __DIR__সংকলন সময়ে মূল্যায়ন করা হয়, অন্যদিকে dirname(__FILE__)একটি ফাংশন-কল মানে এবং সম্পাদনের সময় মূল্যায়ন করা হয়
    • তাই হয়, __DIR__হয় (অথবা, হওয়া উচিত) দ্রুততর।


হিসাবে, একটি রেফারেন্স হিসাবে, ম্যানুয়াল (উদ্ধৃতি) এর ম্যাজিক ধ্রুবক বিভাগটি দেখুন :

__DIR__: ফাইলের ডিরেক্টরি।
যদি অন্তর্ভুক্ত ভিতরে ব্যবহার করা হয় তবে অন্তর্ভুক্ত ফাইলের ডিরেক্টরিটি ফিরে আসে।
এটি সমান dirname(__FILE__)
মূল ডিরেক্টরি না থাকলে এই ডিরেক্টরিটির নামের পেছনে স্ল্যাশ নেই।
(পিএইচপি 5.3.0 এ যুক্ত হয়েছে))


3
নিশ্চিত নয়, তবে এটি বেশ কিছু সময়ের জন্য রয়েছে (ম্যানুয়ালটির ম্যাজিক কনস্ট্যান্ট পৃষ্ঠাগুলি বলছে যে এর বাহাওয়ারটি পিএইচপি ৪.০.২ এ পরিবর্তিত হয়েছে; তাই আমি বলব যে এটি আগে সেখানে ছিল)
পাস্কাল মার্টিন

3
ডিআইআর এবং ডায়ারনেম ( ফাইল ) সর্বদা সর্বশেষ স্ল্যাশ ফেলা হয়, তাই না?
nkkollaw

3
সঠিক, পুরো পথটি যখনই "/" থাকে তবে কেবল সেই ক্ষেত্রে তারা সেটিকে সরিয়ে দেয় না।
ফ্রান্সিসকো প্রেজেনসিয়া

1
আমি সঠিকভাবে বুঝতে পেরেছি কিনা তা আমি নিশ্চিত নই: ডারনাম ( _FILE_ ) সবচেয়ে দ্রুত, ডান?
গিয়াকোমো টেক্যা পিগানি

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