Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP组合变量_Php_Variables - Fatal编程技术网

PHP组合变量

PHP组合变量,php,variables,Php,Variables,我有以下代码: session_start(); $error_fname = $_SESSION['error_fname']; $error_lname = $_SESSION['error_lname']; $error_email = $_SESSION['error_email']; $error_email_invalid = $_SESSION['error_email_invalid']; $error = array( 'fname' => $error_fna

我有以下代码:

session_start();
$error_fname = $_SESSION['error_fname'];
$error_lname = $_SESSION['error_lname'];
$error_email = $_SESSION['error_email'];
$error_email_invalid = $_SESSION['error_email_invalid'];

$error = array(
    'fname' => $error_fname,
    'lname' => $error_lname,
    'email' => $error_email,
    'email_invalid' => $error_email_invalid);
这位于页面顶部,在我的联系人表单下方,放置了以下代码:

<?php echo $error; ?>

出于某种原因,当我触发错误时,页面将刷新,并打印出以下内容:

如何使一个变量($error)显示所有可能的错误

_会话变量在以下文件中定义: /assets/redir/contact.php

<?php

session_start();

$_SESSION['error_fname'] = " ";
$_SESSION['error_lname'] = " ";
$_SESSION['error_email'] = " ";
$_SESSION['error_email_invalid'] = " ";

if($_POST['fname']){
if($_POST['lname']){
if($_POST['email']){
if (strstr($_POST['email'], '@') && strstr($_POST['email'], '.')) {

mail('', 'Nieuw bericht van je website!', strip_tags($_POST['message']));

header('Location: ../../index.php');

}else
$_SESSION['error_email_invalid'] = "<div class='mssg mssg_error'>Het ingevoerde e-mail adres is niet correct.</div>";header('Location: ../../index.php');
}else
$_SESSION['error_email'] = "<div class='mssg mssg_error'>Je e-mail adres is verplicht</div>";header('Location: ../../index.php');
}else
$_SESSION['error_lname'] = "<div class='mssg mssg_error'>Je achternaam is verplicht</div>";header('Location: ../../index.php');

}else
$_SESSION['error_fname'] = "<div class='mssg mssg_error'>Je voornaam is verplicht</div>";header('Location: ../../index.php');

?>    

$error
是一个数组,因此您需要通过该数组进行迭代,并分别显示每个元素:

foreach ($error as $er) {
    if (!empty($er)) {
       echo $er;
       break; //to leave for first error
    }
}

使用
因为
$error
是一个数组井,一个丑陋的做法是
echo不打印数组,所以使用print\r($error);我知道我的问题表述得不对。我已经更新了。如果还有任何问题,请随时提问!好的,这样行。但现在错误不断增加。我正在寻找一个解决方案,只显示一个特定顺序的消息。像这样:1。名字2。姓3。电邮4。更正电子邮件我已经更新了我的答案,并添加了
break
,以便在出现第一个错误时离开循环更新了问题,因此更清楚发生了什么。不过我认为我的代码正在做您想要做的事,所以请告诉我确切包含
$error
的内容。Do
var\u dump($error)而不是旧的回音。再次编辑问题