2017-08-17 54 views
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

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

0

如果我理解你的問題好了,你不打算找出你是否可以使用字符串中的條件,但是你想爲一個字符串賦值。要分配的值取決於一個條件,這可能是這樣寫

$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