PHP: цикл For не будет выполняться

0

Я полностью потеряю. Я много раз искал этот сайт и другие о том, почему мой цикл for, среди многих других рабочих циклов, не будет выполняться и пробовал много предложений. Я проверил, что он фактически не выполняется и не может выполнить условие для его выполнения. Это цикл:

 if (count($bunnyList)>100){
        echo "Too many bunnies! Initiating mass cull.</br>";
        for ($i=0; $i===50; $i++){
            echo 'something';
            unset ($bunnyList[rand(0,(count($bunnyList)))]);
            array_values($bunnyList);
         }
        echo 'Number of bunnies: '.(count($bunnyList));

Выполняется условие if; выполняется первый оператор эха, а затем выполняется также оператор echo, следующий за циклом. Если цикл был выполнен, тогда я должен получить на странице несколько "что-то", и все же у меня их никогда не было, даже после того, как попробовали тонны предложений для других людей, которые не смогли выполнить циклы. Посмотрев на этот кусок кода в течение нескольких часов, я вполне уверен, что я не испортил часть синтаксиса. Пожалуйста, помогите мне, я уже вытащил слишком много кусочков моих волос ou :(

Весь код длиной более ста строк, и я не счел целесообразным публиковать все это. Кроме того, все остальные для циклов в программе работают просто отлично, а бесконечные вариации этого не делают.

Прошу прощения, если это лишний вопрос или если он был задан раньше. Другие ответы на вопросы, похожие на мои, не смогли решить проблему. Пожалуйста, помогите мне. D:

TL; DR Почему только это для цикла не выполняется в моей программе, содержащей множество циклов функционирования? Операторы echo в условии if выполняются.

  • 0
    Каково содержание $ bunnylist? добавить var_dump($bunnylist); перед тем как зациклить - и опубликуйте в своей теме
  • 1
    Вы пытались for ($i=0; $i<=50; $i++)
Показать ещё 9 комментариев
Теги:
for-loop
loops

3 ответа

2
Лучший ответ

Пытаться:

for ($i = 0; $i < 50; $i++) {

Вместо:

for ($i = 0; $i === 50; $i++) {

В цикле for вторая часть НЕ является конечным условием, а условием продолжения. В вашем случае он проверяет, равен ли $ я равным 50, а потому, что это не так, он никогда не войдет в цикл.

  • 0
    На самом деле. homeandlearn.co.uk/php/php5p1.html , сайт, который я искал через долгое время, неправильно обозначил синтаксис как (начальное значение; конечное значение; обновить выражение)
0

Я не слишком хорошо знаком с php, больше java, но не должен ли это за каждый раз "I" меньше 50, увеличивается на 1?

for ($i=0; $i < 50; $i++){
    ...    
}

Я предполагаю, что это синтаксис.

  • 0
    Да, спасибо, мое полное объяснение в комментариях к первоначальному вопросу.
  • 0
    Круто, рад, что ты понял!
0

Попробуйте вот так:

for ($i=0; $i<=50; $i++){
        echo 'something';
        unset ($bunnyList[rand(0,(count($bunnyList)))]);
        array_values($bunnyList);
     }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню