2017-01-19 4 views
6

Ich war der Ausgang erwarten wäre:Ternary Operator Ausgabe

http://domain.dev/category/123

Aber die tatsächliche Ausgabe lautet: ""

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

var_dump($result); 

Von dem, was ich verstehen - es überprüfen, ob empty($condition) ist leer - wenn wahr, dann fügen Sie http://domain.dev/category mit '' ODER sonstan

Was habe ich falsch gemacht?

+2

Was du da eigentlich die Überprüfung, ob ' 'http://domain.dev/category. empty ($ condition) 'ist" truthy "- was immer ist - also wird die leere Zeichenfolge zurückgegeben. – CD001

+0

@ CD001 Ahhh jetzt bekomme ich es :) den ersten Teil verpasst. –

Antwort

9

setzen nur () um Erklärung:

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

so ist es als Operator behandelt

Verwandte Themen