0

下面的代码总是回显不存在。你能给我解决方案吗?

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

   ?>
4

6 回答 6

1

这是您的会话数组的 vardump: [""]=> array(1) { [0]=> string(3) "cat" }

可以看到,因为你没有定义$ses_arr,它的值是""所以"cat"存储在$_SESSION[''][0]

于 2012-08-11T10:25:15.530 回答
0

1) 使用$_SESSION['ses_arr']if'ses_arr'是一个索引。

2) 使用$_SESSION[ses_arr]ifses_arr是一个预定义的常量。

define('ses_arr','mySessionArray');

3) 使用$_SESSION[$ses_arr]if$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";
    }

  ?>
于 2012-08-11T10:20:11.293 回答
0

你还没有定义$ses_arr变量。

定义它,您的代码将起作用。

于 2012-08-11T10:21:05.320 回答
0

我只能假设这$ses_arr是您必须决定使用哪个键来保存数据的某个标识符,或者您将字符串误认为是变量。

首先,通过将其放在脚本顶部紧随以下来打开错误<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

如果您将字符串误认为是变量,它将显示错误。在这种情况下,替换$sess_arr'sess_arr'它应该可以完美地工作。

于 2012-08-11T10:21:53.047 回答
0

这应该有效:

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

?>

于 2012-08-11T10:22:19.147 回答
0

您没有告诉 PHP 变量 $ses_arr 的含义。session_start() 之后;试试 $ses_arr = "ses_arr"; 那么它应该可以工作。

于 2012-08-11T10:24:58.660 回答