1

PHP初心者はこちら。これを検索しましたが、私の問題に関して正しい構文を使用していないと確信しています。これが重複している場合はお詫び申し上げます:

私はこれらの3つの変数を持っています:

$param = get_sub_field('custom_parameter');
$compare = get_sub_field('parameter_compare');
$param_val = get_sub_field('parameter_value');

それぞれがこれを返します:

$param is 'my_parameter'
$compare is either '==', '<=', or '=>'
$param_val is something like '5' or any value that the user sets

私が持っているのは、ユーザーがパラメーター名を設定し、比較を設定してから値を追加できる編集インターフェースです。それに、パラメータが一致した場合に発生するアクションを追加することもできます。これを $_GET と組み合わせて使用​​しています。

私がやりたいことは、上記の各変数を if ステートメントに挿入して、ユーザーが比較を作成することです。ただし、これを実行しようとすると、エラーが発生し続けます。

if($_GET[$param] $compare $param_val) {
// do something
}

私が得るエラーは次のとおりです。

解析エラー:構文エラー、予期しない T_VARIABLE

もちろん、これは問題なく機能します。

if($_GET[$param] == $param_val) {
// do something
}

うまくいけば、私はこれを十分に説明しました。どんな助けも大歓迎です。

更新:私のためにこれに答えてくれて、すぐに飛びついてくれてありがとう。ここでトンを学びました!!

4

5 に答える 5

0

うーん興味深いです、私はこのようにアプローチすると思います(未テスト):

function comparison($param, $compare, $param_val) {
    if ($compare == '==') {
        if ($param == $param_val) {
            return true
        }
    }
    if ($compare == '<=') {
        if ($param <= $param_val) {
            return true
        }
    }
    if ($compare == '>=') {
        if ($param >= $param_val) {
            return true
        }
    }
}

あまり効率的ではないか DRY です。おそらくスイッチを使用する方が良いので、おそらくスイッチを使用できますが、これが私の頭に最初に浮かんだことでした。

使用法

if (comparison($param, $compare, $param_val)) {
    echo 'it's true';
} else {
    echo 'it's false';
}  

編集

いつものように、私はより良いコードに打ち負かされました:)

$paramPSなぜあなたが持っていてそれを使うのか分からないので、私の答え$_GET[$param]で使ったところです。$param

于 2013-07-26T15:35:37.113 に答える