0

各フォーム要素を検証する小さな関数を作成しようとしています。しかし、私はいくつかの困難を抱えています。私は一般的にPHP関数にかなり慣れていません。

現在、フォームの「姓」エントリの検証関数を作成しようとしています。これは私が持っているものです:

//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;
}

そのため、現在、電子メールの検証に同様のものを使用していますが、正しく機能しています。しかし今、私は実際に姓を次のような特定の段階に渡したいと思っています:

$surname = trim($surname);

この新しい値が関数の外でアクセスされ、データベースに入力されるようにするには、関数の最後でそれを返す必要がありますか? 例 return $surname; のようなもの。関数の最後に?

簡単に言えば、この $surname の新しい値 (フォームに入力された最初の値ではなく) を関数の外で使用するにはどうすればよいでしょうか?

4

4 に答える 4

0

関数内でグローバルに設定する必要があります。ただし、関数のパラメーターとして使用しているものと同じ変数名は使用しません。$surnameVar をいじりたい場合は、次のようにします。

function validSurname($surname) {
    global $surnameVar;
    $surnameVar = 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;
}
于 2013-04-16T21:57:23.470 に答える