php会话\u在条件不匹配时开始执行

php会话\u在条件不匹配时开始执行,php,session,Php,Session,如果文件名为test.php,则此脚本将创建一个会话文件。您可能需要更改 <?php session_save_path('/home/path/to/session/'); if(strpos($_SERVER['PHP_SELF'],'test')) { echo 'a'; }else{ session_start(); } 进入 或 根据您的需要,代码很难说清楚。否则,如果$\u服务器['PHP\u SELF']以test strpos开头,则函数返回0,这在您应该

如果文件名为test.php,则此脚本将创建一个会话文件。

您可能需要更改

<?php
session_save_path('/home/path/to/session/');
if(strpos($_SERVER['PHP_SELF'],'test'))
{
    echo 'a';
}else{
    session_start();
}
进入


根据您的需要,代码很难说清楚。否则,如果$\u服务器['PHP\u SELF']以test strpos开头,则函数返回0,这在您应该替换的语句中被视为false。要比较精确的值和类型,需要使用===或!==操作员

您不应该在会话中投入太多。它们的目的是在内部位置更改期间保留少量不敏感数据。可能您希望稍后向其他脚本/用户添加数据,然后您必须再次重写您的逻辑。结果是:输出为a,这意味着if条件为true,并且会话文件仍为createdsession_start位于else部分。当我将strpos$_SERVER['PHP_SELF']、'test'替换为其他表达式,或者简单地替换为'1'时,一切都很好……您到底想要实现什么?请详细解释一下
if(strpos($_SERVER['PHP_SELF'],'test'))
if(strpos($_SERVER['PHP_SELF'],'test') === false)
if(strpos($_SERVER['PHP_SELF'],'test') !== false)