Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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_Session - Fatal编程技术网

Php 如何创建会话变量而不给它赋值?[菲律宾]

Php 如何创建会话变量而不给它赋值?[菲律宾],php,session,Php,Session,基本上我的问题如下: if (empty($username)) { $_SESSION['error messages'][] = 'username missing'; } 我正在尝试创建一个会话变量 这样的事情才会发生 if(username == false) { $_SESSION['error messages'] = 'username missing'; } 问题是,虽然没有错误,但我希望$\u会话['error messages']为空。 但如果我不这样做:

基本上我的问题如下:

if (empty($username)) {
    $_SESSION['error messages'][] = 'username missing';
}
我正在尝试创建一个会话变量 这样的事情才会发生

if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}
问题是,虽然没有错误,但我希望$\u会话['error messages']为空。 但如果我不这样做:

$_SESSION['error messages'] = 'garbage';
if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}
它表示未定义$\u会话['error messages']

在需要该变量之前,如何使其为空

谢谢您使用下面的代码

if(username==false) {
    $_SESSION['error messages']='username missing';
}
希望这对您有所帮助首先,要保存错误消息,请使用以下命令:

if (empty($username)) {
    $_SESSION['error messages'][] = 'username missing';
}
最好保留一个错误消息数组。这样,如果你有多个错误,你可以很容易地循环,计算,等等

然后,如果要显示错误消息,请执行以下操作

if (isset($_SESSION['error messages']) && is_array($_SESSION['error messages'])) {
  foreach ($_SESSION['error messages'] as $errorMessage) {
     // Do something with the error message, for instance:
     printf ("The following error occured: <em>%s</em><br>", $errorMessage);
  }

  // Next, clear the error messages so that they do not pop up on the next page request.
  unset($_SESSION['error messages']);
}

将使用$\u SESSION['error messages']的代码包装在中,以确保不会收到有关未定义索引的错误消息。

像这样初始化会话变量

$_SESSION['error messages'] = null;
if($username == false) {
    $_SESSION['error messages'] = 'username missing';
}
您可以初始化任何其他类型的变量,而不仅仅是会话变量

$_SESSION['error messages'] = 'garbage';
if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}
您错过了==处于if条件。

要检查是否设置了$\u会话['error message'],请使用以下命令:

if(!isset($_SESSION['error message'])){
    $_SESSION['error message'] = '';
}
如果尚未设置会话变量,则将创建空会话变量

但是您可能正在代码中的某个地方访问这个会话变量,而您并不需要它,因此只有在您确实需要它时才访问该变量,到处都是空变量并不是很好


你最好改变你的代码,这样它就不会试图访问一些没有设置也不需要的东西,而不是设置空变量来破解你的代码,让它工作。

当你不想在其中包含任何数据时,为什么不将其设置为呢?我想你必须详细说明你的问题,我不明白!在if条件中有一个变量赋值=,而不是条件=。这可能就是您没有看到会话变量的原因。@NoLiver92,因为如果我这样设置,消息出现的红方块将保持不变there@Rizier123,如果我把您弄糊涂了,我很抱歉,但我真的不知道还有什么方法可以指定更多内容:如果我不给$\u会话['error messages'一些值,则会出现一个错误'Undefined index'在我的剧本中。但我只希望它有一个值,如果有错误,否则它应该是空的,即使有一个值像我不知道用户名是一个constant@Rizier123纠正它