Подтвердить что ты не робот

PHP - пустой массив

(array)$someemptyvariablethatisnotarray возвращает array([0] =>) вместо array()

Как я могу это сделать, чтобы получить пустой массив, который не повторяется, когда я использую его внутри foreach()?

4b9b3361

Ответ 1

Функция, которую вы используете, называется " casting". Это означает, что переменная принудительно становится заданным типом, в вашем примере - массив. Как преобразование var не всегда очевидно в PHP!

В вашем примере $someemptyvariablethatisnotarray становится массивом с одной записью со значением NULL.

документация по PHP говорит:

Поведение автоматического преобразование в массив в настоящее время undefined.

Чтобы решить ваш код, я бы рекомендовал что-то вроде этого:

if (!is_array($someemptyvariablethatisnotarray) {
    $someemptyvariablethatisnotarray = array();
}

Ответ 2

$var = array();

будет пустым массив. Это то, что вам нужно?

Ответ 3

if(!$variable){
        return array();
}

Ответ 4

$somevar = empty($somevar) ? array() : (array)$somevar;

Может быть? Хотя я не уверен, что получаю бросок или цель. Позаботьтесь о том, чтобы немного улучшить (возможно, пример того, что вы пытаетесь выполнить?)

Ответ 5

Попробуйте unset($someemptyvariablethatisnotarray[0]):)

Ответ 6

как вы?

Я считаю, что это то, что вам нужно:

$something = false;
foreach((array)(empty($something) ? null : $something) as $k){
    echo 'never enters here';
}

Вы не получаете пустой массив, потому что когда вы устанавливаете "(массив) false", означает, что у вас будет единственный элемент, и этот элемент будет иметь присвоенное ему значение "FALSE".

То же самое происходит с пустой строкой (не нулевой!) (array) $emptystring вернет массив, который содержит один элемент, который является пустой строкой!

Аналогично выполнению:

array('');

Надеюсь, что это поможет.

Ура!

Ответ 7

Когда вы производите массив без массива, он создает массив с этой переменной как единственное значение.

Если вам нужен пустой массив, вам нужно вернуть array().

Ответ 8

просто используйте count(), например: if(count($array) == 0 ){ // empty array }