我想在PHP中为if语句的结果设置一个变量。这可能吗?这就是我现在正在尝试的事情:
$myVariable = if (strlen($myString) > 0){
echo '<p>'.$myString.'</p>'
};
echo $myVariable;
具体来说,我正在尝试将echo $myString
加入<p>
标记,但仅限$myString
的长度大于0。
我很感激我在这里回应了一个回声,但是当我为意外的if
得到一个解析错误时,我希望我的问题比这更深刻所以我试图找出这是否可以完成或如果我需要以不同的方式去做。谢谢你的时间。
答案 0 :(得分:3)
您想要这样做的方式......
要回答原始问题:您的格式化,您可以使用if
语句来定义变量,但它不是特别易读:
$myVariable = (strlen($myString) > 0) ? '<p>'.$myString.'</p>' : '';
echo $myVariable;
这样做的推荐方法......
但是,在您的情况下,这完全没必要,您可以使用更易理解的形式:
注意:如果传递未定义的变量,PHP echo
不会产生错误。它只会回应我认为你想要它做的事情。
if (strlen($myString) > 0) {
$myVariable = '<p>'.$myString.'</p>';
}
echo $myVariable;
Live demo with $myString
set and empty for the neighsayers
添加了备注strlen
效果
您可能会发现使用if(isset($myString))
比使用if(strlen($myString)>0)
更有效:isset(0.064秒)vs strlen(0.144秒)。如果$myString
可能undefined
,则strlen
变为up to 3x slower still(0.5秒)而isset
becomes faster(0.048秒)。< / p>
所以你的最终代码应该是:
if (isset($myString)) {
$myVariable = '<p>'.$myString.'</p>';
}
echo $myVariable;
答案 1 :(得分:0)
代码应为,
$myVariable = '';
if (strlen($myString) > 0){
$myVariable = '<p>'.$myString.'</p>';
};
echo $myVariable;
答案 2 :(得分:0)
我认为这就是你想要完成的事情,只是没有正确解释,这就是为什么你被投票,无论如何:
$myVariable = (strlen($myString) > 0 ? '<p>'.$myString.'</p>' : '');
答案 3 :(得分:0)
使用它:
$myVariable=(strlen($myString) > 0)? "<p>$myString</p>" : "";
echo $myVariable;
在你的代码中,你错过了; echo
末尾的(分号),这就是你得到解析错误的原因
答案 4 :(得分:-1)
试试这个:
if(strlen($myString)>0){
$myVariable = '<p>'.$myString.'</p>';
}
echo $myVariable;