这是我的代码:
if(isset($_POST['check']) AND $_POST['check'] == 'First') {
$errormessage = array();
if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4) {
$errormessage[] = "FEL - Vänligen ange fullständiga namn. Please enter atleast 3 or more characters for your name";
}
if(!isEmail($_POST['usr_email'])) {
$errormessage[] = "FEL - Invalid email address.";
}
if(empty($errormessage)) {
echo 1;
} else {
echo $errormessage; // <--
}
}
Run Code Online (Sandbox Code Playgroud)
当echo $errormessage运行它输出Array.我究竟做错了什么?
Jac*_*kin 27
您正在调用echo一个实际数组,该数组没有隐式字符串表示形式.
为了输出数组的内容,您可以使用print_r,var_dump或var_export函数或自定义输出,您可以使用array_map甚至foreach循环:
print_r($errormessage);
var_dump($errormessage);
var_export($errormessage);
foreach($errormessage as $error)
echo $error . '<br/>';
array_map('echo', $errormessage);
Run Code Online (Sandbox Code Playgroud)
$errormessage是一个数组,并echo在数组上使用打印Array.
如果要以合适的方式打印错误消息,可以使用foreach迭代消息并打印每条消息:
echo '<ul>';
foreach ($errormessage as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul>';
Run Code Online (Sandbox Code Playgroud)
或者你甚至可以使用一些先进的阵列处理像array_map和implode做这样的事情,它等效于先前所示,当阵列包含至少一个项目:
echo '<ul><li>' . implode('</li><li>', array_map('htmlspecialchars', $errormessage)) . '</li></ul>';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7930 次 |
| 最近记录: |