我正在尝试创建小函数来验证我的每个表单元素。但我遇到了一些困难。我对PHP函数一般都很新。
目前我正在尝试为表单中的'surname'条目创建验证函数。这就是我所拥有的:
//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);
要在函数外部访问这个新值然后输入数据库,我是否需要在函数末尾返回它?例如回报$ surname;在功能结束时?
简单地说 - 我如何在函数之外使用$ surname的新值(而不是在表单中输入的初始值)?
答案 0 :(得分:1)
你应该考虑你的功能是什么。在我看来,你可能需要两个函数isValidSurname
,这将返回一个布尔值为true或false,formatSurname
将获取有效的姓氏并返回正确格式化的函数。
答案 1 :(得分: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;
}
答案 2 :(得分:0)
你要么必须使用全局变量,要么pass $surname by reference如果你想按照你第一次写它的方式去做。
或者,您可以传回修改后的字符串,如果失败则根本不传回字符串。
$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 :(得分:0)
您对函数名称更明确,并返回新值。
例如:
function isSurnameValid($surname) {
return (empty($surname) || (!ctype_alpha(str_replace(' ', '', $surname)))) ? false : true;
}
function cleanSurname($surname) {
$surname = mysql_real_escape_string(stripslashes(trim($surname)));
return $surname;
}
通过这种方式,您可以拥有清晰的描述性功能名称,并且每个功能都有一个单一的责任。