在JavaScript中,我們可以這樣做:你如何做同樣在PHP
PHP使用「||」替代值進行變量定義/聲明「OR」
var x = y || z;
?
我想是這樣的:
$x = $y || $z
這可能嗎?
Thanx!
在JavaScript中,我們可以這樣做:你如何做同樣在PHP
PHP使用「||」替代值進行變量定義/聲明「OR」
var x = y || z;
?
我想是這樣的:
$x = $y || $z
這可能嗎?
Thanx!
如果你想$x
是指示$y || $z
的感實性的布爾(即如果任何$y
或$z
是truthy那麼你發佈:$x = $y || $z
將工作
如果你想$ x到具有相同的值作爲第一個非假的變量,你可以做一個三元:
$x = $y ? $y : $z;
當然,但我如何獲得typeof並確保沒有錯誤發生,如果它是未定義的?即:在Javascript中:var x = typeof(y)!==「undefined」? y:z;你如何在PHP中做到這一點? –
@UniversalGrasp'empty'或'isset'都可以用來檢查變量是否未被定義。請參閱[empty](http://uk3.php.net/empty)和[isset](http://uk3.php.net/isset)。 – Jim
你是男人!... Thax a Trillion! –
可以使用ternary operator(自5.3):
$x = $y ?: $z;
我認爲你的意思是檢查第一個變量是否被定義。
至少這是JS中常見的用例,你會寫x = y || z
,這意味着無非是if y is defined then x = y otherwise x = z
。
這僅適用於JS將undefined
作爲false
!
在PHP中您可以使用isset
如果事情是設置/定義測試:
$z = "test";
$x = isset($y) ? $y : $z;
echo $x; //echoes "test"
你可以做到這一點,但它不會有相同的結果在Javascript。
在Javascript中,y || z
返回值y
如果是真的,則返回z
。這在變量初始化中很有用,因爲它允許您分配y
,但如果未設置y
,則會回退到z
。
在PHP ||
是一個布爾運算符,它總是返回true
或false
。所以$y || $z
不會返回變量的值,它只是返回它們中的任何一個是否真實。
要獲得相同的結果,你可以使用:
$x = $y ? $y : $z;
由於PHP 5.3,這可以簡寫爲:
$x = $y ?: $z;
試試看。 –
我們必須假設你知道*完全* JS代碼的功能,但這不是必須的。所以......首先:你想做什麼? –
'?:' - 沒有,這就是答案。我相信這個問題也被問過很多次了。 – deceze