Самый чистый способ установить значение переменной по умолчанию

Я работаю с генерацией HTML в PHP, и у меня есть в основном необязательные части окна отображения данных, которые зависят от того, какой тип данных отображается в окне. Это привело меня к основным строкам кода, которые выглядят так:

if ($sLockIconHTML == "") {

// Leave a space where the lock icon would have been.
$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
}

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

1

Решение

Просто определите свои переменные в начале вашего скрипта

$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
// Later no condition is needed the default is already there.
// ...and the variable will not be undefined :)

Или, если вы работаете внутри функции и хотите установить значение по умолчанию:

function defaultFor(arg, val) {
return typeof arg !== 'undefined' ? arg : val;
}
function newFunction(variable) {
var variable = defaultFor(variable, defaultValue);
}
1

Другие решения

Должен быть условный оператор, чтобы определить, является ли переменная пустой или нет, или имеет значение, назначенное в вашем случае

if ($sLockIconHTML == "") {

// Leave a space where the lock icon would have been.
$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
}

ваш код правильный; Вы также можете попробовать

if (!isset($sLockIconHTML)) {

// Leave a space where the lock icon would have been.
$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
}

или же

if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
0

$sLockIconHTML = $sLockIconHTML ?: "<div class='user-task-box-right-action-icon'></div>";

$ sLockIconHTML будет назначен, если он не имеет значения.

Эта функция доступна после PHP 5.3.

0

Вы можете написать функцию для этого:

function default(&$str,$default)
{
if ($str == '') $str = $default;
}

Тогда каждая строка будет:

default($sLockIconHTML,"<div class='user-task-box-right-action-icon'></div>");
0

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

                 /* User is not blank,    else:     vvv              */
$sLockIconHTML = ($sLockIconHTML != "" ?: "<div class='user-task-box-right-action-icon'></div>");

Стоит отметить $sLockIconHTML будет равен 1 потом, если $sLockIconHTML пусто

0

Самый простой способ:

if ($var === "")
$var = "data";

пустой ():

if (empty($var))
$var = "data";

Вы не можете использовать Исеть () как некоторые другие предложили, так как он вернет истину в любом случае
и ложь, только если ваша переменная не существует.


функция:

function setVar(&$var, $data)
{
if (empty($var))
$var = $data;
}
setVar($var, "data");

троичный оператор это может быть связано с функцией:

$var = (empty($var)) ? "data" : "";
$var = ($var == "") ? "data" : "";

этот немного сложнее:

isset($var) || $var = "data";
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector