PHP массив не выводится должным образом - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь выполнить проверку формы, но когда я пытаюсь распечатать содержимое массива, когда возникает ошибка, он ничего не выводит.

$errors = array();

if (strlen($password) >= 6) {
    array_push($errors, "Your password is not long enough! Must be over 6 characters!");
}

if(count($errors) !== 0) { 
...
} else {
    echo "There is errors<br/>"; 
    foreach($errors as $er){
        echo $er . "<br/>";
    }
} 

Что я получаю, так это «Есть ошибки»«Так что я знаю, что если еще работает.

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Мне просто нужно исправить аргумент if:

if(count($errors) === 0) {
     // everything is okay
} else {
    echo "There are errors<br/>"; 
    foreach($errors as $er){
        echo $er . "<br/>";
    }
}

Таким образом, когда количество ошибок равно 0, содержимое if равноказнены.Если это не 0, содержимое else выполняется и ошибки печатаются.Это просто противоположность того, что вы сделали.(Я также исправил предложение: это «есть ошибки», а не «есть ошибки»: P)

Кроме того, другой if также неверен, должно быть наоборот:

if (strlen($password) <= 6) {

, поскольку вам необходимо проверить, когда пароль меньше , чем 6 символов.

1 голос
/ 27 января 2012

Не должно ли быть:

if (strlen($password) < 6) {
  array_push($errors, ...);

Кстати, вы должны использовать как минимум константы вместо магических чисел , например,

define('MIN_PASSWORD_LENGTH', 6);

// ...

if (strlen($password) < MIN_PASSWORD_LENGTH) {
    array_push($errors, "Your password is not long enough!"
      . " Must be over ".MIN_PASSWORD_LENGTH." characters!");
}

Таким образом, если ваша минимальная требуемая длина изменяется, вам просто нужно изменить ее один раз.

0 голосов
/ 27 января 2012

Ваше заявление if испорчено.Вы проверяете на наличие ошибок, затем ничего не делаете, а остальное - там, где отображаются ошибки.Попробуйте это:

if(count($errors) >0) {  //there are errors 
    echo "There is errors<br/>"; 
    foreach($errors as $er){
        echo $er . "<br/>";
    }
}else{
    //there are no errors
}

Кроме того, длина вашего пароля должна быть <=6 не больше или равна, если она слишком короткая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...