فب: دفع إلى مجموعة قد تكون أو قد لا تكون موجودة

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

  •  20-08-2019
  •  | 
  •  

سؤال

وأريد إنشاء مجموعة مع رسالة.

$myArray = array('my message');

ولكن استخدام هذا الرمز، سوف myArray الحصول على الكتابة إذا كان موجودا بالفعل.

إذا كنت تستخدم array_push، وأنه لا وجود لها بالفعل.

$myArray = array(); // <-- has to be declared first.
array_push($myArray, 'my message');

وإلا، فإنه سيتم بينك.

هل هناك طريقة لجعل المثال الثاني أعلاه العمل، دون الأول $myArray = array(); المقاصة؟

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

المحلول

وتحقق مما إذا كان مجموعة موجودة أولا، وإذا لم يحدث ذلك، إنشائه ... ثم إضافة عنصر، مع العلم أن مجموعة من المؤكد أن تعرف قبل اليد:

if (!isset($myArray)) {
    $myArray = array();
}

array_push($myArray, 'my message');

نصائح أخرى

وهنا:

$myArray[] = 'my message';

و$ myArray أن تكون مجموعة أو لم يتم تغيير. إذا كان يحمل قيمة والتي هي عبارة عن سلسلة، صحيح أو الكائن الذي لا ينفذ arrayaccess، وسوف تفشل.

ويجب عليك استخدام is_array ()، وليس isset. مفيدة إذا كان يتم وضع myArray من دالة تقوم بإرجاع صفيف أو سلسلة (-1 على خطأ على سبيل المثال)

وهذا سيمنع الأخطاء إذا أعلن myArray بأنه ليس صفيف مكان آخر.

if(is_array($myArray))
{
   array_push($myArray,'my message');
}
else
{
   $myArray = array("my message");
}
if ($myArray) {
  array_push($myArray, 'my message');
}
else {
  $myArray = array('my message');
}

وسيلة OIS "ستعمل.

أو

if (!isset($myArray)) 
    $myArray=array();
array_push($myArray, 'message');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top