Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Edi BudimilicОтветов: 4

Лучшим примером было бы показать вам, как это решается в Javascript:

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

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

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

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

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

  • немного короче: someEmptyString ? someEmptyString : 'новое текстовое значение'; Gerben 23.06.2011
  • возможный дубликат разъяснения тернарного оператора PHP, Как называется эта конструкция присваивания? И можете ли вы сделать это на Php? outis 01.04.2012

javascriptphpstringif-statement

Ответы

Ответ 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 при выполнении.

Ответ 3 · рейтинг 1 · Dan Simon

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

Ответ 4 · exussum

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

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

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

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

который я лично нахожу более читаемым, чем его троичный эквивалент

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы