0

我尝试从命令行输出我的 .php 文件,并且我希望能够模拟$_SESSION此输出的值。

我试过php test.php --define $_SESSION["id"]=1了,但它没有设置全局变量$_SESSION

我显然没有正确使用命令行,但我找不到我应该怎么做。

有什么想法让它发挥作用吗?

非常感谢

编辑:对于我的示例 test.php 如下:

<? echo $_SESSION['id'];?>
4

2 回答 2

1
$ cat setsession.php 
<?php
//fixed session:
session_id("fixed");
session_start();
?>
$ cat checksession.php 
<?php
if(!isset($_SESSION['counter'])) $_SESSION['counter'] = 0;

$_SESSION['counter']++;

var_dump($_SESSION);
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(1)
}
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(2)
}
$ php -d auto_prepend_file=setsession.php checksession.php 
array(1) {
  ["counter"]=>
  int(3)
}
于 2012-06-19T21:46:19.583 回答
0

您不能以任何有意义的方式在命令行上使用会话——会话标识符存储在 cookie 中。命令行不做cookies,所以正常的会话方式不起作用。当然,您可以$_SESSION在脚本运行期间使用超全局。只是不要期望它在同一脚本的不同调用之间持续存在。

于 2012-06-19T21:38:03.790 回答