我可以检索代表访问位置的会话变量,如下所示,
$_SESSION['access']
这个会话变量包含如下字符串:
dummy1,dummy2,dummy3,dummy4
例如,$_SESSION['access']
也可以是dummy1
或dummy1,dummy2
或dummy1,dummy2,dummy3
或dummy2,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/>") ;
}
}