如何检查会话变量是否包含特定值



我可以检索代表访问位置的会话变量,如下所示,

$_SESSION['access']

这个会话变量包含如下字符串:

dummy1,dummy2,dummy3,dummy4

例如,$_SESSION['access']也可以是dummy1dummy1,dummy2dummy1,dummy2,dummy3dummy2,dummy3,dummy4。有什么方法可以找到contains类型的功能?

Ex:
if($_SESSION['access']`.contains("dummy1")){
//do somthing, 
}

或者我需要使用mysql函数来检索我需要什么?

不是方法而是函数-因为string在PHP中不是对象

函数名为str_contains

在你的例子中这样使用:

if (str_contains($_SESSION['access'], "dummy1")) {
//do somthing, 
}

该函数最近才成为语言的一部分(需要PHP 8)。

对于较旧的PHP版本,strstr经常用于此目的(它也返回原始字符串的子字符串,但仅在包含它的情况下-这正是我们在这里需要的)。

可以这样做:

if (strstr($_SESSION['access'], "dummy1")) {
//do somthing, 
}

这可能有点冗长,但可以工作:

if ( array_key_exists( "access", $_SESSION ) )  {
$arrVals = explode( ',', $_SESSION["access"]) ;
$key = "dummy1" ; // doesn't have to be hard-coded here, just for demo
$b = array_search( $key, $arrVals ) ;
if ( $b !== false ) {
/// do your thing
echo ( "found $key<br/>") ;
}
}

相关内容

  • 没有找到相关文章

最新更新