如果在echo中有else条件,则不工作


not working if else condition inside echo

我正在尝试在echo中设置else条件。

<?php if(count($category['children'][$i]['children_level2'])>0){ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?>
    <?php echo "<?php if ($direction == 'ltr') { ?><span class='fa fa-caret-right'></span><?php } else { ?><span class='fa fa-caret-left'></span><?php } ?></a>";
    } else{ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a>
    <?php }?>

但是,下面的条件在上面的代码中不能正常工作。这里出了什么问题?

<?php if ($direction == 'ltr') { ?><span class='fa fa-caret-right'></span><?php } else { ?><span class='fa fa-caret-left'></span><?php } ?>

在php代码中编写php代码

<?php if(count($category['children'][$i]['children_level2'])>0){ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?>
    <?php  if ($direction == 'ltr') { ?><span class='fa fa-caret-right'></span><?php } else { ?><span class='fa fa-caret-left'></span><?php } ?></a>
   <?php } else{ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a>
    <?php }?>

试试这个,你应该检查值然后打印想要的结果

<?php if(count($category['children'][$i]['children_level2'])>0){ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?>
    <?php if ($direction == 'ltr') { print "<span class='fa fa-caret-right'></span>";  } else {  print "<span class='fa fa-caret-left'></span>"; } ?></a>
    <?php
    } else { ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a>
    <?php }?>

你不能在if语句中添加if但是你可以在if语句中添加echo,像这样:

<?php if(count($category['children'][$i]['children_level2'])>0){ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>">
    <?php echo $category['children'][$i]['name']; ?>
    <?php if ($direction == 'ltr') { echo"<span class='fa fa-caret-right'></span>"; } else { echo "<span class='fa fa-caret-left'></span> </a>"; }
    } else{ ?>
      <a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a>
    <?php }?>

看起来您试图回显实际的PHP代码,而不是该代码的结果。

将行改为<?php if ($direction == 'ltr') { ?><span class='fa fa-caret-right'></span><?php } else { ?><span class='fa fa-caret-left'></span><?php } ?></a>;

因为您是在条件中自然地表达HTML,所以不需要回显任何内容。