আমি এই প্রশ্নের জন্য আমার 2 সেন্ট যুক্ত করতে চেয়েছিলাম, যেহেতু আমি মধ্যম পথটি মিস করছি।
বলেছি হিসাবে isset()
তাই এটি ফিরে আসবে কী এর মান মূল্যায়ন করবে false
যদি মান null
যেখানে array_key_exists()
শুধুমাত্র চেক করবে কী অ্যারের মধ্যে যদি উপস্থিত থাকে।
আমি পিএইচপি 7 ব্যবহার করে একটি সাধারণ বেঞ্চমার্ক চালিয়েছি, ফলাফলগুলি পুনরাবৃত্তি শেষ করতে সময় নিয়েছে তা দেখানো হয়েছে:
$a = [null, true];
isset($a[0]) # 0.3258841 - false
isset($a[1]) # 0.28261614 - true
isset($a[2]) # 0.26198816 - false
array_key_exists(0, $a) # 0.46202087 - true
array_key_exists(1, $a) # 0.43063688 - true
array_key_exists(2, $a) # 0.37593913 - false
isset($a[0]) || array_key_exists(0, $a) # 0.66342998 - true
isset($a[1]) || array_key_exists(1, $a) # 0.28389215 - true
isset($a[2]) || array_key_exists(2, $a) # 0.55677581 - false
array_key_isset(0, $a) # 1.17933798 - true
array_key_isset(1, $a) # 0.70253706 - true
array_key_isset(2, $a) # 1.01110005 - false
আমি এই মানদণ্ডের সাথে এই কাস্টম ফাংশন থেকে ফলাফলগুলি সম্পূর্ণ করার জন্যও যুক্ত করেছি:
function array_key_isset($k, $a){
return isset($a[$k]) || array_key_exists($k, $a);
}
যেমনটি দেখা এবং ইতিমধ্যে বলা হয়েছে isset()
দ্রুততম পদ্ধতি তবে মানটি হলে এটি মিথ্যা ফিরতে পারে null
। এটি অযাচিত ফলাফল দিতে পারে এবং array_key_exists()
যদি কেস হয় তবে সাধারণত ব্যবহার করা উচিত ।
তবে মধ্যম উপায় আছে এবং এটি ব্যবহার করছে isset() || array_key_exists()
। এই কোডটি সাধারণত দ্রুত ফাংশন ব্যবহার করে isset()
এবং যদি isset()
মিথ্যাটি দেয় তবেarray_key_exists()
তা বৈধতা দেওয়ার জন্য ব্যবহার করে। উপরের সারণীতে প্রদর্শিত, এটি স্পষ্টভাবে কল করার মতোই দ্রুতisset()
।
হ্যাঁ, কোনও ফাংশনে এটিকে মোড়ানো এবং মোড়ানোর জন্য এটি আরও কিছুটা ধীর কিন্তু অনেক সহজ। আপনার যদি পারফরম্যান্সের জন্য, বড় ডেটা পরীক্ষা করা ইত্যাদির জন্য এটি প্রয়োজন হয় তবে তা পুরোপুরি লিখুন, অন্যথায় যদি এটির 1 বার ব্যবহার হয় যা ফাংশনটিতে খুব ছোটখাট ওভারহেড array_key_isset()
নগদ হয় না।