Я работаю с генерацией HTML в PHP, и у меня есть в основном необязательные части окна отображения данных, которые зависят от того, какой тип данных отображается в окне. Это привело меня к основным строкам кода, которые выглядят так:
if ($sLockIconHTML == "") {
// Leave a space where the lock icon would have been.
$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
}
Как правильно заменить значение строки, но только если это пустая строка?
Просто определите свои переменные в начале вашего скрипта
$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);
}
Должен быть условный оператор, чтобы определить, является ли переменная пустой или нет, или имеет значение, назначенное в вашем случае
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';
}
$sLockIconHTML = $sLockIconHTML ?: "<div class='user-task-box-right-action-icon'></div>";
$ sLockIconHTML будет назначен, если он не имеет значения.
Эта функция доступна после PHP 5.3.
Вы можете написать функцию для этого:
function default(&$str,$default)
{
if ($str == '') $str = $default;
}
Тогда каждая строка будет:
default($sLockIconHTML,"<div class='user-task-box-right-action-icon'></div>");
В PHP 5.3 или выше вы можете использовать троичный оператор:
/* User is not blank, else: vvv */
$sLockIconHTML = ($sLockIconHTML != "" ?: "<div class='user-task-box-right-action-icon'></div>");
Стоит отметить $sLockIconHTML
будет равен 1
потом, если $sLockIconHTML
пусто
Самый простой способ:
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";