dizi ile yardımcı

4 Cevap php

Ben burada yanlış ne yapıyorum? Adı dizesi az 2 karakter ama yine set hata [] Yüklü?

Kayıt Ol:

$errors = array();

$username = "l";

    validate_username($username);

if (empty($errors)) {
   echo "nothing wrong here, inserting...";
}

if (!empty($errors)) {

    foreach ($errors as $cur_error)
        $errors[] = '<li class="warn"><span>'.$cur_error.'</span></li>';
}


function validate_username($username) {

$errors = array();

if (strlen($username) < 2)
    $errors[] = "Username too short";
else if (strlen($username) > 25)
    $errors[] = "Username too long";

return $errors;

}

4 Cevap

Değişim validate_username($username); ile $errors = validate_username($username);

Sizin fonksiyonu errors, küresel errors sizi bekliyor olabilir değil adında yerel bir değişken etkiliyor.

Aşağıdaki gibi Ayrıca, kod biraz yukarı temizlenebilir

$username = "l";
$errors   = validate_username($username);

// No errors
if ( empty($errors) ) {
   echo "nothing wrong here, inserting...";
}
// Errors are present
else {
    foreach ( $errors as $cur_error ) {
        $errors[] = '<li class="warn"><span>'.$cur_error.'</span></li>';
    }
}

function validate_username($username) {
    $errors = array();
    $len    = strlen($username);

    if ( $len < 2 ) {
        $errors[] = "Username too short";
    } elseif ( $len > 25 ) {
        $errors[] = "Username too long";
    }

    return $errors;
}

Eğer herhangi bir değişkeni validate_username() dönüş değeri atama değil çünkü bu.

Denemek

 $errors = validate_username($username);

Eğer bunu doğru şekilde dönen değil, ihtiyacınız:

$errors = validate_username($username)

Eğer atamak unuttum $errors

  $errors = validate_username($username);