2012-03-01 7 views
6

特定の変数がtrueの場合は、文字列に追加データを追加する必要があります。そうでない場合は、何も追加する必要はありません。現在、私はやっています:三項演算子PHPに偽の値を含める必要がありますか?

3値演算子でfalseオプションを追加する方法はありますか?条件が偽であれば$ string = $ stringと言うのは無駄です。

答えて

3

あなたはそれをスキップすることはできません。あなたはif条件かかわらず、1行として再記述することができます。

if (condition()) $string = 'something'.$string.'something'; 
+0

これは私の次の選択だったが、それを期待していましたできました。確認していただきありがとうございます。 – Ayub

0

いいえ、スキップする方法はありません。あなたが偽のビットをスキップしたい場合は、バックif方法に行く:

if (condition()) $string = 'something' . $string . 'something'; 

三の方法は、とにかくすぐ手if文です。上記の例のように、可読性を犠牲にすることなくifの文を短くすることができれば、それを考慮する必要があります。

しかし、正直に言うと、私もそれより読みやすくすることをフォーマットしたい:

if (condition()) 
    $string = 'something' . $string . 'something'; 

あなたは、モニターの高さの必死のショートでない限り、それが一目で理解しやすくなります:-)

1

はい、あなたがする必要があります。三項演算子を関数と考えてください。何をあなたはこのような何かをした場合の動作があることを期待するが、condition()falseと評価された場合の割り当てを作りたいしませんでした:

$string = ternary(condition(), $yesValue, $noValue); 

あなたが変数に代入を中止することができます方法はありませんの場合、condition()はfalseと評価されます。

-1

いいえこれは三元のポイントです。 false値を必要としない場合は、condition()が必要な値を返すだけではないのですか?

ような何か:私は三ためのドキュメントであるので、ここでは、誰もがすでにそれに私を打つ見ることができます

$string = condition($string); 

function condition($string){ 
    if($string == 'whatever') 
    { 
     $string = 'something'.$string.'something'; 
    } 

    return $string; 
} 

http://php.net/manual/en/language.operators.comparison.php

+0

の場合は、trueの場合のみ表示し、falseの場合は表示しません。 –

+0

@hanoncs - あなたはちょうどその時に何を提案しましたか?彼が誤った取り扱いを定義したくなければ、三元の平野を単純に使用しないでください。彼の質問には「力」はありません。彼は本当に追加したいだけだが、自己再宣言は間違って無駄だと考える。それが懸念される場合、彼は何とかチェックする関数を実行しています。なぜ$ string = condition()と言うだけでなく、その関数に文字列の最終結果を与えるのですか? –