Здравствуйте. Подскажите, пожалуйста, почему тело этого цикла выполняется 1 раз вне зависимости от переменной $nums? Код (PHP): for ($i = 0; $i <= $nums; $i++){ $item_key = array_rand ($list); $item = $list[$item_key]; if ($item[0] == 'money'){ mysql_query("UPDATE `money` SET `money` = money+".$item[1]." WHERE `name` = '$username'"); return("Открыв кейс, вы получили <b>".$item[1]."</b> рублей на счёт."); } else { $row_items = mysql_fetch_assoc(mysql_query("SELECT * FROM `sale` WHERE `block_id` = '{$item[0]}'")); if (mysql_num_rows (mysql_query("SELECT * FROM `$server` WHERE `item_id` = '{$item[0]}' AND `nickname` = '$username'"))){ mysql_query ("UPDATE `$server` SET `item_amount` = item_amount + {$item[1]} WHERE `nickname` = '$username' AND `item_id` = '{$item[0]}'"); } else { mysql_query ("INSERT `$server` VALUES ('', '$username', '{$item[0]}', '{$item[1]}', '{$row_items["image"]}', '{$row_items["name"]}', '{$row_items["price"]}', '', 'item', '1')"); } return("Открыв кейс, вы получили <b>\"".$row_items["name"]."\"</b> в количестве <b>".$item[1]."</b> шт. на сервере <b>".$server.".</b> Увидеть ваш приз можно на складе в магазине блоков, либо в игре с помощью команды <b>/cart gui</b>."); } }
так понимаю что она останавливает цикл, да? А как тогда так же вернуть значение, но продолжить работу цикла?
во временную переменную с помощью конкатенации можно накапливать данные и потом их вернуть уже вне цикла
А если я буду использовать echo, то смогу использовать что-то типа function a { echo x; } $m = a() ? --- Добавлено --- Хотя сделаю как denis01 предложил. Спасибо.
не цикл, а выполнение функции. Ну про генераторы уже сказали, но если с return сложности, генераторы тем более не поймёте. Складывайте в массив внутри функции, возвращайте массив