我正在使用PHP生成HTML,我有数据显示框的主要可选部分,它取决于框中显示的数据类型。这让我有了类似的代码:
if ($sLockIconHTML == "") {
// Leave a space where the lock icon would have been.
$sLockIconHTML = "<div class='user-task-box-right-action-icon'></div>";
}
替换字符串值的干净方法是什么,但仅当值为空字符串时才会这样做?
答案 0 :(得分: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 :(得分:0)
必须有一个条件语句,以确定变量是否为空,或者在您的情况下分配了值
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';
}
答案 2 :(得分:0)
$sLockIconHTML = $sLockIconHTML ?: "<div class='user-task-box-right-action-icon'></div>";
如果没有值,将分配$ sLockIconHTML。
此功能在PHP 5.3之后可用。
答案 3 :(得分:0)
您可以为此编写一个函数:
function default(&$str,$default)
{
if ($str == '') $str = $default;
}
然后每一行都是:
default($sLockIconHTML,"<div class='user-task-box-right-action-icon'></div>");
答案 4 :(得分:0)
使用PHP 5.3或更高版本,您可以使用三元运算符:
/* User is not blank, else: vvv */
$sLockIconHTML = ($sLockIconHTML != "" ?: "<div class='user-task-box-right-action-icon'></div>");
如果$sLockIconHTML
为空,则值得注意的是1
将等于$sLockIconHTML
。
答案 5 :(得分:0)
if ($var === "")
$var = "data";
if (empty($var))
$var = "data";
您不能像其他人所建议的那样使用isset(),因为它会在任何一种情况下都返回true 只有当你的变量不存在时才会出现错误。
一个功能:
function setVar(&$var, $data)
{
if (empty($var))
$var = $data;
}
setVar($var, "data");
$var = (empty($var)) ? "data" : "";
$var = ($var == "") ? "data" : "";
这个有点棘手:
isset($var) || $var = "data";