PHP数组搜索 - key => string

End*_*vde 2 php arrays

我遇到了一些麻烦 in_array()

$list = array(
    "files/" => "/system/application/files/_index.php",
    "misc/chat/" => "/system/application/misc/chat/_index.php"
);
Run Code Online (Sandbox Code Playgroud)

我有这个$_GET['f']持有字符串files/.
如何在数组中搜索可能的匹配?

如果在数组中找到该字符串,则应包含该文件

谢谢你的帮助 :)

irc*_*ell 6

这很简单.您需要做的就是检查数组元素是否已设置.通常使用的语言结构是isset()(是的,很明显)...

if (isset($list[$_GET['f']])) {
}
Run Code Online (Sandbox Code Playgroud)

没有必要为此调用函数,isset更清晰,更容易阅读(恕我直言)...

请注意,这isset实际上不是一个功能.这是一种语言结构.这有一些影响:

  1. 你不能isset在函数返回时使用(isset(foo())不起作用).它只适用于变量(或变量组合,如数组访问或对象访问).

  2. 它没有函数调用的开销,所以它总是很快.函数调用的总体开销是一个需要担心的微优化,但值得一提的是,如果你处于紧密循环中,它可以加起来.

  3. 您不能将isset称为变量函数.这不起作用:

    $func = 'isset';
    $func($var);
    
    Run Code Online (Sandbox Code Playgroud)