2017-01-19 113 views
6

我期待的輸出爲:三元操作問題

http://domain.dev/category/123

但實際產量爲:""

$condition = true; 
$categoryId = 123; 
$result = 'http://domain.dev/category' . empty($condition) ? '' : '/' . $categoryId; 

var_dump($result); 

從我的理解 - 它檢查是否empty($condition)爲空 - 如果屬實,則將http://domain.dev/category''相加,否則/$categoryId

我做錯了什麼?

+2

你實際上檢查有否''http://domain.dev/category。空($ condition)'是「truthy」 - 它總是 - 所以返回空字符串。 – CD001

+0

@ CD001呃現在我明白了:)錯過了第一部分。 –

回答

9

只是把()周圍聲明:

$result = 'http://domain.dev/category' . (empty($condition) ? '' : '/' . $categoryId); 

所以它會被視爲運營商