هل هو ممارسة جيدة لتهيئة العناصر في مجموعة النقابي في بي؟

StackOverflow https://stackoverflow.com/questions/308835

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا وجدت نفسي تفعل الكثير من الامور مع صفائف النقابي في PHP.

وكنت أفعل هذا:

 foreach ($item as $key=>$value) {
     if ($arr[$key] == null) {
         $arr[$key] = 0; 
     }
     $arr[$key] += $other_arr[$value];
 }

ولكن بعد ذلك أدركت أنه يعمل بشكل جيد إذا أستبعد الخط الذي تهيئة $ آر [$ مفتاح]، ويفترض لأنه باطل الذي يعامل نفس 0.

هل يجعل هذا النوع من الافتراض في بي؟ وإذا كان الوضع آمنا، هل هو فكرة جيدة؟

هل كانت مفيدة؟

المحلول

وأنها آمنة لكنني أنصح ضدها. إذا وضعت خطأ في التقارير الخاصة بك حتى E_NOTICES سترى التعليمات البرمجية إنتاج الكثير منها، اخفاء أي أخطاء حقيقية (مثل اسم متغير في كتابة).

وماذا يجب عليك حقا أن تفعل هي:

if (!isset($arr[$key]))
    $arr[$key] = 0;

وهذا لن يرفع إشعار (ولكن كن حذرا جدا لا لسوء نوع $ آر داخل isset ()).

نصائح أخرى

واعتبارا من php 7 يمكنك الآن القيام بما يلي:

foreach ($item as $key=>$value) {
    $arr[$key] = ($arr[$key] ?? 0) + other_arr[$value];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top