doukangbin9698 2013-04-16 21:51
浏览 24
已采纳

PHP验证函数返回值?

I'm trying to create small functions to validate each of my form elements. But I'm having some difficulties. I'm fairly new to PHP functions in general.

Currently I'm trying to create a validation function for the 'surname' entry in a form. This is what I have:

//Call surname validation function
If (validSurname($surname) === false) {
    $mistakes[] = 'Your surname is either empty or Enter only ALPHABET characters.';
} 
function validSurname($surname) {
    $surname = trim($surname);
    if (empty($surname) || (!ctype_alpha(str_replace(' ', '', $surname)))) {
        $isValid = false;
    } else {
        //accept surname entry and sanitize it
        $surname = mysql_real_escape_string(stripslashes($surname));
    }
    return $isValid;
}

So currently I use something similar for validating emails, and it works correctly. But now I want to actually pass the surname through certain stages such as:

$surname = trim($surname);

For this new value to be accessed outside of the function and then entered into the database, do I need to return it at the end of the function? e.g. Something like return $surname; at the end of the function?

Put simply - how do I use this new value of $surname (rather than the initial one entered in the form) outside of the function?

  • 写回答

4条回答 默认 最新

  • dtkwt62022 2013-04-16 21:58
    关注

    You either have to use a global variable, or pass $surname by reference if you want to do it the way you first wrote it.

    Alternatively, you could pass back the modified string, or no string at all if it failed.

    $surname = validSurname($surname);
    if (strlen($surname) == 0) {
        $mistakes[] = 'Your surname is either empty or Enter only ALPHABET characters.';
    }
    
    function validSurname($surname) {
        $surname = trim($surname);
        if (empty($surname) || (!ctype_alpha(str_replace(' ', '', $surname)))) {
            $surname = '';
        } else {
            //accept surname entry and sanitize it
            $surname = mysql_real_escape_string(stripslashes($surname));
        }
        return $surname;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?