以下代码始终回显"不存在"。你能给我解决方案吗?
<?php
session_start();
$_SESSION[$ses_arr]=array();
$word="cat";
array_push($_SESSION[$ses_arr],$word);
if(in_array($word,$_SESSION[$ses_arr]))
{
echo "present";
}
else
{
echo "Not Present";
}
?>
这是
会话数组的vardump: ["]=> array(1) { [0]=> string(3) "cat" }
如您所见,因为您尚未定义 $ses_arr,因此其值为 ",因此 "cat" 存储在 $_SESSION[''][0] 中。
您尚未定义$ses_arr
变量。
定义它,您的代码将起作用。
我只能假设$ses_arr
是您必须决定使用哪个键来保存数据的某个标识符,或者您将字符串误认为变量。
首先,通过将它放在脚本顶部来打开错误 <?php
:
error_reporting(E_ALL);
ini_set('display_errors', 1);
如果您将字符串误认为是变量,它将显示错误。在这种情况下,请将$sess_arr
替换为'sess_arr'
,它应该可以完美运行。
你没有告诉 PHP 变量 $ses_arr 是什么意思。在 session_start();尝试 $ses_arr = "ses_arr";那么它应该可以工作。
1) 如果'ses_arr'
是索引,请使用$_SESSION['ses_arr']
。
2) 如果ses_arr
是预定义的常量,请使用$_SESSION[ses_arr]
。
define('ses_arr','mySessionArray');
3) 如果$ses_arr
是预定义变量,请使用$_SESSION[$ses_arr]
。
$ses_arr = 'mySessionArray';
以下代码将为您工作:
<?php
session_start();
$_SESSION['ses_arr']=array();
$word="cat";
array_push($_SESSION['ses_arr'],$word);
if(in_array($word,$_SESSION['ses_arr']))
{
echo "present";
}
else
{
echo "Not Present";
}
?>
这应该有效:
<?php
session_start();
$ses_arr = array();
$_SESSION['ses_arr']=$ses_arr;
$word="cat";
array_push($_SESSION['ses_arr'],$word);
if(in_array($word,$_SESSION['ses_arr']))
{
echo "present";
}
else
{
echo "Not Present";
}
?>