可以在 php 中使用会话数组


Is to possible to use session arrays in php?

以下代码始终回显"不存在"。你能给我解决方案吗?

  <?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";
    }

?>