Лучший пример – показать вам, как это разрешено в 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");
который я лично считаю более читаемым, чем его тройной эквивалент