我试图在if/else语句中获取一个值,并发送一个带有“该变量”的错误消息,因为我不希望我的任何输入超过99个字符。
代码如下:
if(empty($x) || empty($y) || empty($z)){
$_SESSION["ErrorMessage"]="You have to fill all the blanks.";
redirect_to("addxyz.php");
} elseif(strlen($x)>99 || strlen($y)>99 || strlen($z)>99){
$_SESSION["ErrorMessage"]="Very Long Name for /*variable name will be here*/";
redirect_to("addxyz.php");
} else {/*Rest of the code*/}
在第二部分中,当我使用带有变量的strlen函数时,我需要使用数组或任何其他方法来选择其中一个,而不是使用3个不同的if/else语句。最好的方法是什么?
提前谢谢。
发布于 2018-06-15 06:18:57
您可以使用三个变量创建一个数组,然后使用foreach
循环对其进行验证。即使在同一个foreach
循环中,您也可以进行第一次验证:
foreach(array($x, $y, $z) as $values) {//---> the $values variable represents each of your '$x, $y, $z' variables in the loop.
if (empty($values)) {
$_SESSION["ErrorMessage"]="You have to fill all the blanks.";
redirect_to("addxyz.php");
} else if (strlen($values) > 99) {
$_SESSION["ErrorMessage"]="Very Long Name for $values";//---> This will notify the first value that fails the validation.
redirect_to("addxyz.php");
}
}
如果有多个值未通过验证(例如$x
和$z
),并且您希望通知所有这些值,则可以将$values
值保存在一个数组中,然后显示它。如下所示:
$strlenErrors = array();
foreach(array($x, $y, $z) as $values) {
if (strlen($values) > 99) {
$strlenErrors[] = $values;
}
}
if (!empty($strlenErrors)) {
$_SESSION["ErrorMessage"]="Very Long Name for: ".implode(", ", $strlenErrors);//---> This will divide and print the '$strlenErrors' array by commas.
redirect_to("addxyz.php");
}
https://stackoverflow.com/questions/50866603
复制相似问题