私は以前これまでに触れたことはありませんでしたが、3つの変数が同じかどうかテストする方法はありますか?以下、明らかに動作しませんが、私は次のように記述するエレガントな(そして正しい)方法を考えることはできません。PHP:3つの変数が等しいかどうかをテストする
if ($select_above_average === $select_average === $select_below_average) { }
私は以前これまでに触れたことはありませんでしたが、3つの変数が同じかどうかテストする方法はありますか?以下、明らかに動作しませんが、私は次のように記述するエレガントな(そして正しい)方法を考えることはできません。PHP:3つの変数が等しいかどうかをテストする
if ($select_above_average === $select_average === $select_below_average) { }
if ((a == b) && (b == c)) {
... they're all equal ...
}
あなたはすでにアダムによってあなたの答えを持っていますが、正しくこれを行う方法を覚えておくための良い方法は、あなたの場合にのみ、あなたは()
ブレースでラップする必要があり、単一の検証のために覚えておくことです1つのチェックを行うと、if ()というステートメントによってすでに提供されている中カッコがあります。
例:
(B=== )場合
とあなたが複数のをやっている場合、
=== bの((場合) & & (C === D))
ソプラノあなたは括弧のすべてのセットが検証チェックであることを覚えていれば、あなたはこのようなログインを持つことができます。
場合(((a === b) || (C === D)) & & (FE ===))
文および他の多くの論理演算は、階層上で動作している場合、個々の量となるよう小切手内の小切手は親小切手に影響します。
a === b
またはc === d
が失敗した場合、e === f
はabとしてチェックされません。cdは、括弧で囲まれて返され、チェックされます。
希望はもう少しお手伝いします。
if ($select_above_average === $select_average
&& $select_average === $select_below_average) { }
$values = array($select_above_average, $select_average, $select_below_average);
if(count(array_unique($values)) === 1) {
// do stuff if all elements are the same
}
はそれを行うための別の方法だろう。 transitive relation
によって
役に立つ例。乾杯! –
私は、3つの配列のアイテムの量がこのシナリオのように同じであるかどうかを確認する必要があったというユニークな状況がありました。
これは私が思い付いたものです:この戦術は異なるアレイで、彼ら場合array_count_valuesを使用してフィールドをカウントし
$allfieldscount = array(count($fields), count($operators), count($values)); //store an array of the count of all the arrays.
$same = array_count_values($allfieldscount);//returns an array by values in the array. We are looking to see only 1 item in the array with a value of 3.
if(count($same) != 1){
//Then it's not the same
}else{
//Then it's the same
}
(フィールド、演算子と値は、すべての配列であると仮定)
すべてが同じであれば、それが返す配列のカウントは '1'になります。それ以外の場合は同じではありません。そのことをもっと理解するためにphp.netのarray_count_valuesを調べてください。
ありがとう!私はまた、それから良いウィキペディアの記事を持っています! – Matty
'=='ではなく '==='を使用します。 PHPの緩やかな平等は推移的ではありません! – Brilliand
各比較の前後のかっこは*必須ではありません。 –