Подтвердить что ты не робот

Тройной оператор и приведение строки конкатенации?

Привет, я просто хочу знать, почему этот код дает (по крайней мере для меня) неправильный результат.

Ну, наверное, я виноват здесь.

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';

Я предполагал, что если paperType равно "Bond" , тогда описание "Paper: Bond", и если paperType не равен "Bond" , тогда описание "Paper: Other".

Но когда я запускаю этот код, результаты являются описанием "Bond" или "Other" и оставили меня интересно, где строка "Бумага:" пошла???

4b9b3361

Ответ 1

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');

Попробуйте добавить круглые скобки, чтобы строка была привязана к строке в правильном порядке.

Ответ 2

Это связано с приоритетом оператора. Вы должны сделать следующее:

$description = 'Paper: ' . (($paperType == 'bond') ? 'Bond' : 'Other');