2017-08-17 10 views
1

文字列に条件を使用する方法はありますか?文字列内に1つのライナー条件を使用する

$x = 'hello'; 
$y = 'mister'; // is nullable 
$z = 'panda'; 

$msg = $x . ' ' . {($y == 'mister') ? 'dear ' : ' ' } . $z 

// Output: hello dear panda 
+0

問題は何ですか? – Andreas

+0

あなたはそれを正しく実行しました。中括弧を括弧で入れ替えるだけです。 – MinistryofChaps

+2

'{}'を '()'に置き換えてください。 –

答えて

3

(){}を交換し、それが動作します:

$x = 'hello'; 
$y = 'mister'; // is nullable 
$z = 'panda'; 
$msg = $x . ' ' . (($y == 'mister') ? 'dear ' : ' ') . $z; 
echo $msg; 
+0

奇妙な、あなたの答えは正しいので、なぜ投票しましたか –

+0

私たちは決して知らない@ JigarShah) –

4

あなたは(){}を置き換える必要があります。また、$y=='mister'のまわりの()は必要ありません。それらを(読み取り可能な)最小値に保つようにしてください。私たちは、あなたが()を使用する必要があります代わりに、{ }ブラケットを使用していない三項演算子の

$msg = $x . ' ' . ($y == 'mister' ? 'dear ' : ' ') . $z; 
4

私はよくあなたの質問を理解していた場合、あなたは、文字列内の条件を使用できるかどうかを調べるために意図していないあなたのコード

$msg = $x . ' ' . (($y == 'mister') ? 'dear ' : ' ') . $z

0

$msg = $x . ' ' . {($y == 'mister') ? 'dear ' : ' ' } . $z

を交換してください文字列に値を代入したいとします。割り当てられる値は

$x = 'hello'; 
$y = 'mister'; // is nullable 
$z = 'panda'; 

$msg = $x . ' '; 
if ($y == 'mister') { 
    $msg .= $x . 'dear '; 
} 
$msg .= $z; 

// Output: hello dear panda 

のように書くことができます条件に依存しかし、これは少し長いです、あなたが使用することを意図しましたか?オペレーター。間違いは中括弧{}を使用したことでした。これは修正です:

$x = 'hello'; 
$y = 'mister'; // is nullable 
$z = 'panda'; 

$msg = $x . ' ' . (($y == 'mister') ? 'dear ' : ' ') . $z; 

// Output: hello dear panda 
関連する問題