php: veya yok olabilir bir dizi için bastırıyor

5 Cevap php

Ben bir mesaj ile bir dizi oluşturmak istiyorum.

$myArray = array('my message');

Bunu zaten var ama eğer bu kodu kullanarak, myArray yazılır alacak.

Ben kullanırsanız array_push, zaten var olmak zorundadır.

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

Aksi halde, Bink olacaktır.

İlk temizleme olmadan, çalışma yukarıda ikinci örnek yapmak için bir yolu var mı $myArray = array();?

5 Cevap

Dizi ilk olup olmadığını kontrol edin, ve bunu yaratmak değilse ... o dizi mutlaka elden önce tanımlanmış olacağını bilerek, öğe eklemek:

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

array_push($myArray, 'my message');

İşte:

$myArray[] = 'my message';

$ MyArray bir dizi veya ayarlanmamış olması. O ArrayAccess uygulamak değil, bir dize, tamsayı veya nesne bir değer tutarsa, başarısız olur.

You should use is_array(), not isset. Usefull if myArray is being set from a function that returns an array or a string (-1 on error for example)

MyArray başka bir yerde değil bir dizi olarak bildirilirse, bu hataları önleyecektir.

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

OIS 'yol çalışacaktır.

Veya

if (!isset($myArray)) 
    $myArray=array();
array_push($myArray, 'message');

Tamam, bu yüzden mantık gerektirir. Ben tek bir satırda her şeyi umuyordum sanırım. Bunu bilmek güzel. Teşekkürler!