这是不好的做法吗?
if ($_SESSION['something'] == '')
{
echo 'the session is empty';
}
Run Code Online (Sandbox Code Playgroud)
有没有办法检查它是空的还是没有设置?我实际上是这样做的:
if (($_SESSION['something'] == '') || (!isset($_SESSION['something'])) {
echo 'the session is either empty or doesn\'t exist';
}
Run Code Online (Sandbox Code Playgroud)
是否!isset只检查是否$_SESSION['']存在,并没有检查是否是有值的数组或不
kar*_*m79 90
session_start();
if(isset($_SESSION['blah']) && !empty($_SESSION['blah'])) {
echo 'Set and not empty, and no undefined index error!';
}
Run Code Online (Sandbox Code Playgroud)
array_key_exists是一个很好的替代isset用于检查键:
session_start();
if(array_key_exists('blah',$_SESSION) && !empty($_SESSION['blah'])) {
echo 'Set and not empty, and no undefined index error!';
}
Run Code Online (Sandbox Code Playgroud)
确保session_start在读取或写入会话数组之前进行调用.
Gum*_*mbo 11
在访问存在您不确定的变量之前isset,请使用empty或array_key_exists(尤其是数组键).因此,在第二个示例中更改顺序:
if (!isset($_SESSION['something']) || $_SESSION['something'] == '')
Run Code Online (Sandbox Code Playgroud)
您可以使用count()函数查看$ _SESSION数组中有多少条目.这不是好习惯.您应该设置用户的ID(或类似的东西)以检查会话是否已初始化.
if( !isset($_SESSION['uid']) )
die( "Login required." );
Run Code Online (Sandbox Code Playgroud)
(假设您要检查是否有人登录)
| 归档时间: |
|
| 查看次数: |
219010 次 |
| 最近记录: |