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条)

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等