2015-03-06 4 views
0

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

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, следующий за циклом. Если цикл был выполнен, тогда я должен получить на странице несколько «что-то», и все же у меня никогда не было, даже после того, как я попробовал множество предложений для неудачных попыток других людей. Посмотрев на этот кусок кода в течение нескольких часов, я вполне уверен, что я не испортил часть синтаксиса. Пожалуйста, помогите мне, я уже вытащил слишком много кусочков моих волос. :(

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

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

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

+0

Что содержание $ bunnylist? добавьте 'var_dump ($ bunnylist);' перед тем, как вы зацикливаете - и разместите его в своей теме. –

+1

Вы пробовали 'for ($ i = 0; $ i <= 50; $ i ++)' – phpfresher

+1

'for ($ i = 0; $ i === 50; $ i ++)' test is wrong '$ i <50 ' –

ответ

2

Try:

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

Вместо:

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

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

+0

Действительно. http://www.homeandlearn.co.uk/php/php5p1.html, сайт, который я искал после долгого времени, неправильно обозначил синтаксис как (начальное значение, значение END, выражение для обновления) –

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); 
    } 
Смежные вопросы