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

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

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

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

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

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

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

Ответы [ 4 ]

38 голосов
/ 23 июня 2011

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

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

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

До версии 5.3 ему нужнобыть немного более многословным:

$someString = $someEmptyString ? $someEmptyString : 'new text value';
3 голосов
/ 23 июня 2011
$someString = (!isSet( $someEmptyString ) || empty( $someEmptyString ) )? "new text value" : $someEmptyString;

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

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

1 голос
/ 23 июня 2011

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

$someString = $someEmptyString ?: "New Text Value";
0 голосов
/ 22 мая 2015

Хотя троичное более понятно, что происходит, вы также можете установить переменную следующим образом:

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...