Php 如何在短代码中使用嵌套if-else语句

Php 如何在短代码中使用嵌套if-else语句,php,wordpress,shortcode,Php,Wordpress,Shortcode,我正在尝试使用嵌套的if-else短代码,但它不起作用。 任何人请尽快帮助 function fn_services_text_box($attr){ $name = $attr['service_name']; $icon = $attr['icon_path']; $text = $attr['content_text']; $link = $attr['url_path']; $output

我正在尝试使用嵌套的if-else短代码,但它不起作用。 任何人请尽快帮助

function fn_services_text_box($attr){

$name           = $attr['service_name'];
$icon           = $attr['icon_path'];
$text           = $attr['content_text'];
$link           = $attr['url_path'];

$output         = if($icon == ''){
                    $output        .='<div class="service-list-title"><h3>'.$name.'</h3></div>
                    <div class="service-list-txt">'.$text.'</div>                                    
                    <div class="service-list-readmore"><a href="'.$link.'">Know More</a></div>';
                }
                else if($link == ''){
                    $output        .='<div class="polygon-shape">
                        <div class="icon">
                            <img class="img" src="'.$icon.'" />
                        </div>
                    </div>
                    <div class="service-list-title"><h3>'.$name.'</h3></div>
                    <div class="service-list-txt">'.$text.'</div>  '; 
                }
                else{
                    $output        .='<div class="polygon-shape">
                        <div class="icon">
                            <img class="img" src="'.$icon.'" />
                        </div>
                    </div>
                    <div class="service-list-title"><h3>'.$name.'</h3></div>
                    <div class="service-list-txt">'.$text.'</div>                                    
                    <div class="service-list-readmore"><a href="'.$link.'">Know More</a></div>';
                }

return $output;
功能fn\u服务\u文本框($attr){
$name=$attr['service_name'];
$icon=$attr['icon_path'];
$text=$attr['content_text'];
$link=$attr['url_path'];
$output=if($icon==''){
$output.=''.$name.'
“.$text。”
';
}
else if($link==''){
$output.='
“.$name。”
“.$text.”;
}
否则{
$output.='
“.$name。”
“.$text。”
';
}
返回$output;
}


我正在visual composer中使用此短代码,将其添加到短代码映射器。

请替换此行

$output = if($icon == ''){


请换这条线

$output = if($icon == ''){


它就像魔术一样,非常感谢。你能解释一下你为什么这样做吗;Most Welcome@poonamkatapara让我解释一下,我们不能用if语句直接声明变量$output。所以我们需要首先声明变量为空,比如
$outout=“
”,然后如果没有其他声明,我们可以像您已经做的那样附加数据。这就像魔术一样,非常感谢。你能解释一下你为什么这样做吗;Most Welcome@poonamkatapara让我解释一下,我们不能用if语句直接声明变量$output。因此,我们需要首先声明变量为空,比如
$outout=“
,然后如果不是这样,我们可以像您已经做的那样附加数据。
$attr
包含什么?函数没有返回任何内容吗?
$attr
包含什么内容?你的函数没有返回任何东西吗?