как заменить $ allUsers = [] на array ()?

Текущий код работает на localhost, поскольку он использует PHP 5.4, но мой живой сайт использует PHP 5.3

Кто-нибудь, как это изменить, чтобы он работал на моем живом сайте?

$results = $dbc->query($sql);

$allUsers = [];

while($users = $results->fetch_assoc()) {
$allUsers[] = [
'userID' => $users['userID']
];
};

foreach ($allUsers as $user) {

echo '$user['userID']';
}

Вывод должен выглядеть так:

1

2

3

но в настоящее время это выглядит так:

3

1

Решение

Не все версии PHP поддерживают этот синтаксис, лучше придерживаться традиционного способа:

$results = $dbc->query($sql);

$allUsers = array();

while($users = $results->fetch_assoc()) {
$allUsers[] = $users;
}

foreach ($allUsers as $user) {
echo $user['userID'];
}
2

Другие решения

$allUsers = [];

Такое же как

$allUsers = array();

Для более старых версий PHP. Но с какой стати вы будете использовать PHP 4.3 на живом сайте в 21 веке? 🙂

О ваше назначение в цикле также необходимо изменить на более старый формат

$allUsers[] = array(
'userID' => $users['userID']
);
1

Попробуй это, не проверял,

$allUsers = array(); // Instead of []

В документации сказано, что [] Synax был реализован после 5.4.

1