这是我的代码:
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; // <--
}
}
运行echo $errormessage
时,会输出Array
。我做错了什么?
答案 0 :(得分:27)
您在实际数组上调用echo
,该数组没有隐式字符串表示。
为了输出数组的内容,您可以使用print_r
,var_dump
或var_export
函数或自定义输出,您可以使用array_map
甚至{{{ 1}}循环:
foreach
答案 1 :(得分:7)
$errormessage
是一个数组,在数组上使用echo
仅打印Array
。
如果您想以合适的方式打印错误消息,可以使用foreach
来迭代消息并打印每条消息:
echo '<ul>';
foreach ($errormessage as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul>';
或者你甚至可以使用像array_map
和implode
这样的高级数组处理来执行类似这样的操作,这与前面显示的数组包含至少一个项目相同:
echo '<ul><li>' . implode('</li><li>', array_map('htmlspecialchars', $errormessage)) . '</li></ul>';
答案 2 :(得分:0)
你需要漂亮打印数组。你是怎么做到的,取决于你。
如果您将数组传递给某些JavaScript,您可能希望将其编码为JSON数组:
echo json_encode($errormessage);
答案 3 :(得分:0)
$errormessage = array();
$errormessage[] = "...";
两者都将$ errormessage定义为数组数据类型。 Echo以字符串或数字格式打印数据。要从数组打印数据,请按建议使用print_r,或循环遍历数组成员并使用echo
答案 4 :(得分:0)
要查看变量中的内容,只需执行
print_r( $errormessage );
// or
var_dump( $errormessage );
答案 5 :(得分:-1)
像这样使用代码
if(isset($_POST['check']) AND $_POST['check'] == 'First') {
$errormessage = array();
if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4)
{
$errormessage['error_what_ever_key_you_want'] = "FEL - Vänligen ange fullständiga namn. Please enter atleast 3 or more characters for your name";
}
if(!isEmail($_POST['usr_email'])) {
$errormessage['error_what_ever_key_you_want'] = "FEL - Invalid email address.";
}
if(!empty($errormessage)){
echo $errormessage['error_what_ever_key_you_want']; // <--
}
}