এটি বাস্তব বিশ্বে এত সহজ প্রতিক্রিয়া নয়। মনে করুন আমাদের কাছে সম্ভাব্য প্রতিক্রিয়ার এই উদাহরণ রয়েছে যা আপনি কয়েকটি লাইব্রেরিতে খুঁজে পেতে পারেন।
$array1 = array();
$array2 = array(1,2,3,4);
$array3 = array('hello'=>'world', 'foo'=>'bar');
$array4 = null;
var_dump('reset1', reset($array1));
var_dump('reset2', reset($array2));
var_dump('reset3', reset($array3));
var_dump('reset4', reset($array4)); // Warning
var_dump('array_shift1', array_shift($array1));
var_dump('array_shift2', array_shift($array2));
var_dump('array_shift3', array_shift($array3));
var_dump('array_shift4', array_shift($array4)); // Warning
var_dump('each1', each($array1));
var_dump('each2', each($array2));
var_dump('each3', each($array3));
var_dump('each4', each($array4)); // Warning
var_dump('array_values1', array_values($array1)[0]); // Notice
var_dump('array_values2', array_values($array2)[0]);
var_dump('array_values3', array_values($array3)[0]);
var_dump('array_values4', array_values($array4)[0]); // Warning
var_dump('array_slice1', array_slice($array1, 0, 1));
var_dump('array_slice2', array_slice($array2, 0, 1));
var_dump('array_slice3', array_slice($array3, 0, 1));
var_dump('array_slice4', array_slice($array4, 0, 1)); // Warning
list($elm) = $array1; // Notice
var_dump($elm);
list($elm) = $array2;
var_dump($elm);
list($elm) = $array3; // Notice
var_dump($elm);
list($elm) = $array4;
var_dump($elm);
আপনারা দেখতে পাচ্ছেন, আমাদের বেশ কয়েকটি 'এক লাইন' সমাধান রয়েছে যা কিছু ক্ষেত্রে ভাল কাজ করে তবে সমস্ত ক্ষেত্রে তা নয়।
আমার মতে, আপনার কেবলমাত্র অ্যারে দিয়ে সেই হ্যান্ডলারটি থাকা উচিত।
এখন পারফরম্যান্সের কথা বলছি, ধরে নিই যে আমাদের সবসময় অ্যারে রয়েছে, এরকম:
$elm = empty($array) ? null : ...($array);
...you would use without errors:
$array[count($array)-1];
array_shift
reset
array_values
array_slice
array_shift
দ্রুত চেয়ে reset
, এবং এই তিনটি দ্রুত তুলনায় - আরো দ্রুত যে এর চেয়ে [1 গণনা ()], array_values
এবং array_slice
।