如何在不给它赋值的情况下创建 SESSION 变量? [php]
How to create a SESSION variable without giving it a value? [php]
基本上我的问题如下:
我正在尝试创建一个会话变量
这样就可以发生这样的事情
if(username == false)
{
$_SESSION['error messages'] = 'username missing';
}
问题是,虽然没有错误,但我希望 $_SESSION['error messages'] 为空。
但是如果我不做这样的事情:
$_SESSION['error messages'] = 'garbage';
if(username == false)
{
$_SESSION['error messages'] = 'username missing';
}
它说 $_SESSION['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']);
}
将使用 $_SESSION['error messages']
的代码包装在 isset() 中确保您不会收到有关未定义索引的错误消息。
像这样初始化你的会话变量
$_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 条件中的 ==。
要检查 $_SESSION['error message']
是否已设置,请使用:
if(!isset($_SESSION['error message'])){
$_SESSION['error message'] = '';
}
如果尚未设置,将创建一个空会话变量。
但是您可能在代码中的某处访问这个会话变量,而您不需要,所以只访问当你确实需要它时变量,到处都是空变量并不是很整洁。
您最好更改您的代码,这样它就不会尝试访问未设置且也不需要的内容,而不是将空变量设置为 "hack" 您的代码以使其正常工作。
基本上我的问题如下:
我正在尝试创建一个会话变量 这样就可以发生这样的事情
if(username == false)
{
$_SESSION['error messages'] = 'username missing';
}
问题是,虽然没有错误,但我希望 $_SESSION['error messages'] 为空。 但是如果我不做这样的事情:
$_SESSION['error messages'] = 'garbage';
if(username == false)
{
$_SESSION['error messages'] = 'username missing';
}
它说 $_SESSION['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']);
}
将使用 $_SESSION['error messages']
的代码包装在 isset() 中确保您不会收到有关未定义索引的错误消息。
像这样初始化你的会话变量
$_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 条件中的 ==。
要检查 $_SESSION['error message']
是否已设置,请使用:
if(!isset($_SESSION['error message'])){
$_SESSION['error message'] = '';
}
如果尚未设置,将创建一个空会话变量。
但是您可能在代码中的某处访问这个会话变量,而您不需要,所以只访问当你确实需要它时变量,到处都是空变量并不是很整洁。
您最好更改您的代码,这样它就不会尝试访问未设置且也不需要的内容,而不是将空变量设置为 "hack" 您的代码以使其正常工作。