首页 > 解决方案 > 在参数上检查不相等

问题描述

因此,我使用以下调用触发了以下方法:

$im->o()->em('id', '1234');

这是我的方法:

public function em(string $k, string $v) {

    var_dump($k);

    // Check if id or email is provided as key
    if ($k != 'id' || $k != 'email') {
        echo '<pre>Please provide either an id or email key.</pre>';
        return;
    }
}

为什么当我这样做时if ($k != 'id') {,它会起作用并触发错误,但是当我添加||or 来检查 $key 是一个id还是email字符串时,它不起作用?

标签: php

解决方案


条件不正确。它应该&&代替||.

更好的方法是-

$valid_keys = array('id', 'email');
if(in_array($key, $valid_keys) === false) {
...

推荐阅读