php - 将变量设置为if语句的结果

时间:2013-05-31 12:21:57

标签: php

我想在PHP中为if语句的结果设置一个变量。这可能吗?这就是我现在正在尝试的事情:

 $myVariable = if (strlen($myString) > 0){
               echo '<p>'.$myString.'</p>'
               };
 echo $myVariable;

具体来说,我正在尝试将echo $myString加入<p>标记,但仅限$myString的长度大于0。

我很感激我在这里回应了一个回声,但是当我为意外的if得到一个解析错误时,我希望我的问题比这更深刻所以我试图找出这是否可以完成或如果我需要以不同的方式去做。谢谢你的时间。

5 个答案:

答案 0 :(得分:3)

您想要这样做的方式......

要回答原始问题:您的格式化,您可以使用if语句来定义变量,但它不是特别易读:

$myVariable = (strlen($myString) > 0) ? '<p>'.$myString.'</p>' : '';
echo $myVariable;

Live demo

这样做的推荐方法......

但是,在您的情况下,这完全没必要,您可以使用更易理解的形式:

注意:如果传递未定义的变量,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;