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

Лучший пример – показать вам, как это разрешено в Javascript:

var someString = someEmptyString || 'new text value'; 

В этом примере javascript мы обнаружили, что «someEmptyString» пуст и автоматически устанавливает значение «новое текстовое значение». Возможно ли это в PHP и каков самый короткий (код) способ сделать это?

Вот как я это делаю сейчас:

 if ($someEmptyString == "") $someString = 'new text value'; else $someString = $someEmptyString; 

Это раздражает меня в течение некоторого времени, и я был бы очень благодарен, если кто-то знает лучший способ сделать это. Спасибо!

Вы можете использовать тернарный оператор ?: .

Если у вас PHP 5.3, это очень элегантно:

 $someString = $someEmptyString ?: 'new text value'; 

До 5.3 он должен быть немного более подробным:

 $someString = $someEmptyString ? $someEmptyString : 'new text value'; 
 $someString = (!isSet( $someEmptyString ) || empty( $someEmptyString ) )? "new text value" : $someEmptyString; 

Я думаю, что это был бы самый правильный способ сделать это. Проверьте, не является ли этот var пустым или если он не установлен и не работает.

это все еще немного кода, но вы не должны получать никаких предупреждений или ошибок PHP при их выполнении.

Вы можете использовать тернарный оператор

 $someString = $someEmptyString ?: "New Text Value"; 

В то время как троянец более ясен, что происходит, вы также можете установить переменную как это

 ($someString = $someEmptyString) || ($someString = "Default"); 

Работает во всех версиях PHP, вы можете расширить это, чтобы использовать более одного варианта отказоустойчивости

 ($someString = $someEmptyString) || ($someString = $someOtherEmptyString) || ($someString = "Default"); 

который я лично считаю более читаемым, чем его тройной эквивалент