Лучшим примером было бы показать вам, как это решается в Javascript:
var someString = someEmptyString || 'new text value';
В этом примере javascript мы обнаружили, что "someEmptyString" пуста, и автоматически установили значение "новое текстовое значение". Возможно ли это в PHP и какой самый короткий (код) способ сделать это?
Вот как я это делаю сейчас:
if ($someEmptyString == "")
$someString = 'new text value'; else $someString = $someEmptyString;
Это беспокоит меня уже довольно давно, и я был бы очень признателен, если кто-то знает лучший способ сделать это. Благодарю вас!
Ответ 1 · рейтинг 44 · lonesomeday
Вы можете использовать тернарный оператор ?:.
Если у вас PHP 5.3, это очень элегантно:
$someString = $someEmptyString ?: 'new text value';
До версии 5.3 он должен быть немного более подробным:
$someString = $someEmptyString ? $someEmptyString : 'new text value';
Ответ 2 · рейтинг 5 · Michael Brevig
$someString = (!isSet( $someEmptyString ) || empty( $someEmptyString ) )? "new text value" : $someEmptyString;
Я думаю, что это будет самый правильный способ сделать это. Проверьте, пуста ли эта переменная или не задано ли условие запуска.
это все еще немного кода, но вы не должны получать никаких предупреждений или ошибок PHP при выполнении.
Ответ 4 · exussum
В то время как троичный более понятен, что происходит, вы также можете установить переменную, подобную этой
($someString = $someEmptyString) || ($someString = "Default");
Работает во всех версиях PHP. Вы также можете легко расширить это, чтобы использовать более 1 варианта.
($someString = $someEmptyString) ||
($someString = $someOtherEmptyString) ||
($someString = "Default");
который я лично нахожу более читаемым, чем его троичный эквивалент