Тема: тернарний оператор.
сьогодні довгий час тупив над тернарним операторм і чого ж він не правильно працює)
echo $data->name .' '. $data->getSecondName() ? 'qwe' : '';
чому завжди буде виводитися qwe, в не залежності від булевого результату getSecondName()?
виявляється, шо PHP цей рядок інтерпретує як конкатенацію $data->name з умовою, тобто:
if($data->name .' '. $data->getSecondName())
echo 'qwe';
else
echo '';
через динамічну типізацію похапе, булевий тип приєдная до строки і в результаті в нас буде строка.
а майже вся строка, в нас тру
тобто має бути так:
echo $data->name .' '. ($data->getSecondName() ? 'qwe' : '');