+3

Ternary operator

consider code bellow: $var =true? '1' : false? '2': '3' Why the Value of $var is '2' and we have the true value '1'? second: $var =true? '1' : false? '2': '3' $var =true? '1' : true? '2': '3' $var =false? '1' : false? '2': '3' $var =false? '1' : true? '2': '3' in all cases the value of $var is '2' Please let me know understand the main idea behind ternary in php. Regard

10/16/2019 5:52:21 AM

Hadia

3 Answers

New Answer

+7

I think order precedence comes into play and '1' replaces true which returns '2'. Since false will not be evaluated. Looks like a language bug but i doubt its. #HappyCoding

+3

david chongo Daljeet Singh Jayden LeCorps Samuel Kinuthia Rajesh Toadie Manjunath Shekar Mozhda Arvin Frozen. BlackRose Mike

+2

it may sound crazy, but ternary in php is left-associative here's the proof https://www.php.net/manual/en/language.operators.precedence.php so true?'1':false?'2':'3' will become '1'?'2':'3' resulting '2' true?'1':false will get executed, then the the result is used for the next operation