我尝试从命令行输出我的 .php 文件,并且我希望能够模拟$_SESSION
此输出的值。
我试过php test.php --define $_SESSION["id"]=1
了,但它没有设置全局变量$_SESSION
。
我显然没有正确使用命令行,但我找不到我应该怎么做。
有什么想法让它发挥作用吗?
非常感谢
编辑:对于我的示例 test.php 如下:
<? echo $_SESSION['id'];?>
我尝试从命令行输出我的 .php 文件,并且我希望能够模拟$_SESSION
此输出的值。
我试过php test.php --define $_SESSION["id"]=1
了,但它没有设置全局变量$_SESSION
。
我显然没有正确使用命令行,但我找不到我应该怎么做。
有什么想法让它发挥作用吗?
非常感谢
编辑:对于我的示例 test.php 如下:
<? echo $_SESSION['id'];?>
$ 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)
}
您不能以任何有意义的方式在命令行上使用会话——会话标识符存储在 cookie 中。命令行不做cookies,所以正常的会话方式不起作用。当然,您可以$_SESSION
在脚本运行期间使用超全局。只是不要期望它在同一脚本的不同调用之间持续存在。