Как назначить переменную одной из двух строк, если одна из них пуста?

Мне интересно, почему это не работает, чтобы присвоить строку $ separator :

$separator = $options['title-separator'] || ' | ';

В другом месте опция $ была назначена какому-то тексту или пустой строке. (На самом деле, , в моем случае это какой-то текст или ЛОЖЬ, но в любом случае ...). $ separator имеет значение ИСТИНА, а не строка.

Следующее выполняет то, что я хочу, но кажется излишне многословным:

$separator = ( $s = $options['title-separator'] ) ? $s : ' | ';

Я пришел из JavaScript, где оба этих примера дают один и тот же результат, что мне кажется логичным. Что мне нужно понимать в PHP, чтобы это имело смысл? Прямо сейчас меня просто раздражают сотни дополнительных символов, которые потребуются для каждого место, где используется опция.

6
задан Dharman 29 September 2019 в 19:48
поделиться