为什么这个脚本只给我一个输出(strpos PHP)


Why does this script just gives me 1 ouput (strpos PHP)

我正在创建一个社交网络,这个脚本是一个搜索功能。

$username = $_SESSION['username'];
$search = $_POST['search'];
//strpos($user,$search)
$path = "../database/users";
$users = scandir($path);
$output = array();
$count = 0;
foreach($users as $user) {
    if ("$user" !== ".." || "$user" !== "." | "$user" !== "$username") {
        if(strpos($user, $search)) {
            $count = $count + 1;
            array_push($output, $user);
    }
}

}

现在我想知道为什么它在输出数组中只给我1个值…当有更多的用户在其中包含a(当我搜索多于一个时,它给我没有输出)。

strpos可能返回0,这是有效的(意味着字符串以搜索短语开始),但它不会通过if(strpos($user, $search))检查。

考虑添加if(strpos($user, $search) !== false)

也删除按位或|,并将其替换为逻辑或||