Php 写if-else语句的较短方法?

Php 写if-else语句的较短方法?,php,if-statement,Php,If Statement,我最初尝试了下面的PHP代码,但它仍然会输出HTML: 字体:即使字符串为空 字体: 因此,我的问题是,如何以更短的方式在最顶端编写代码?$typeface=trim($page->typeface()); <?php $typeface = $page->typeface(); if (!empty($typeface)): ?> <li><span>Typeface: </span><?php echo $t


我最初尝试了下面的PHP代码,但它仍然会输出HTML:
  • 字体:
  • 即使字符串为空


    
    
  • 字体:

  • 因此,我的问题是,如何以更短的方式在最顶端编写代码?

    $typeface=trim($page->typeface());
    <?php $typeface =  $page->typeface(); 
      if (!empty($typeface)): ?>
        <li><span>Typeface: </span><?php echo $typeface ?></li> 
      <?php endif; ?>
    
    如果($typeface!='') 回显“
  • 字体:”.$Typeface.
  • ”; 编辑:(删除新行)

    $typeface=trim(str_replace(数组(“\r”、“\r\n”、“\n”)、“$page->typeface());
    如果($typeface!='')
    回显“
  • 字体:”.$Typeface.
  • ”;
    $typeface=trim($page->typeface());
    如果($typeface!='')
    回显“
  • 字体:”.$Typeface.
  • ”;
    编辑:(删除新行)

    $typeface=trim(str_replace(数组(“\r”、“\r\n”、“\n”)、“$page->typeface());
    如果($typeface!='')
    回显“
  • 字体:”.$Typeface.
  • ”;
    试试这个

    $typeface = trim(str_replace(array("\r", "\r\n", "\n"), '', $page->typeface()));
    if($typeface != '')
        echo '<li><span>Typeface: </span>'.$typeface.'</li>';
    
    (isset($typeface)和&!empty($typeface))?echo“
  • 字体:“.$typeface.”
  • ”:”;
    试试这个

    $typeface = trim(str_replace(array("\r", "\r\n", "\n"), '', $page->typeface()));
    if($typeface != '')
        echo '<li><span>Typeface: </span>'.$typeface.'</li>';
    
    (isset($typeface)和&!empty($typeface))?echo“
  • 字体:“.$typeface.”
  • ”:”;
    ($typeface==”)?echo“”:echo“
  • 字体:”.$typeface.
  • ”;
    ($typeface==”)?echo“”:echo“
  • 字体:”.$typeface.
  • ”;
    根据
    $page->typeface()
    方法的返回类型和代码的位置(看起来您在模板视图中),我可能会选择:

    ($typeface=="")?echo "":echo '<li><span>Typeface: </span>'.$typeface.'</li>';
    
    我在
    if()
    中设置变量
    $typeface
    。这种技术应该将代码缩短一行

    下面是一个使用简单字符串的工作示例:

    <?php if ($typeface = trim($page->typeface())): ?>
        <li><span>Typeface: </span><?=$typeface?></li>
    <?php endif; ?>
    
    
    ...
    
  • 字体:
  • 。。。产出:没有

    <?php $foo = ""; ?>
    ...
    <?php if ($typeface = trim($foo)): ?>
        <li><span>Typeface: </span><?=$typeface?></li>
    <?php endif; ?>
    
    
    ...
    
  • 字体:

  • 。。。输出:
  • 字体:我是一个字符串
  • (显然,由于缺少开头和结尾,根据
    $page->typeface()
    方法的返回类型和代码的位置(看起来您在模板视图中),我可能会选择:

    ($typeface=="")?echo "":echo '<li><span>Typeface: </span>'.$typeface.'</li>';
    
    我在
    if()
    中设置变量
    $typeface
    。这种技术可以将代码缩短一行

    下面是一个使用简单字符串的工作示例:

    <?php if ($typeface = trim($page->typeface())): ?>
        <li><span>Typeface: </span><?=$typeface?></li>
    <?php endif; ?>
    
    
    ...
    
  • 字体:
  • …输出:没有

    <?php $foo = ""; ?>
    ...
    <?php if ($typeface = trim($foo)): ?>
        <li><span>Typeface: </span><?=$typeface?></li>
    <?php endif; ?>
    
    
    ...
    
  • 字体:
  • …输出:
  • 字体:我是一个字符串!
  • (显然,缺少开头和结尾
      试试这个

      <?php $foo = 'I\'m a string!'; ?>
      ...
      <?php if ($typeface = trim($foo)): ?>
          <li><span>Typeface: </span><?=$typeface?></li>
      <?php endif; ?>
      
      $typeface=$page->typeface();
      echo$res=($typeface!='')“
    • 字体:'.$typeface.”
    • ':'';
      试试这个

      <?php $foo = 'I\'m a string!'; ?>
      ...
      <?php if ($typeface = trim($foo)): ?>
          <li><span>Typeface: </span><?=$typeface?></li>
      <?php endif; ?>
      
      $typeface=$page->typeface();
      echo$res=($typeface!='')“
    • 字体:'.$typeface.”
    • ':'';

      我也会应用修剪,以防万一。@PeterKiss修剪是什么意思?如果值为空,我会有一个空行。我该如何删除它?如果(修剪($page->typeface())!=”{/*…*/}修剪仍然会留下一个空行。非常感谢@vlcekmi3I也会应用修剪以备不时之需。@PeterKiss修剪是什么意思?如果值为空,我确实有一个空行。我该如何删除它?如果(修剪($page->typeface())!=“”{/*…*/}修剪仍然留下一个空行。非常感谢@vlcekmi3,因为某种原因,当没有值时仍然输出
    • 字体:
    • 。@ChristopherBurton当我第一次发布代码时,我有
      $Typeface=$page->Typeface()
      (复制/粘贴错误)。我将它改为
      $Typeface===$page->Typeface()
      (注意
      ==
      )。希望这就是为什么它对你不起作用的原因?我仍然得到同样的结果。天哪,我不想浪费你的时间…你可能会修剪,就像其他人说的:
      ?当我使用这些变量进行测试时:
      ,其中
      $foo
      是我的
      $page->typeface()版本
      ,它对我很有用,$page->typeface()期望的返回类型/值是什么?我假设它是一个空/非空字符串返回?再说一遍,我并不想浪费你的时间(看起来你已经得到了很多很好的答案)。:@ChristopherBurton即使你得到了答案,我也更新了我的答案……我最初的想法是正确的(参见上面的编辑)。我有时喜欢在
      if()中指定变量
      check…减少了需要处理的代码行。如果这不起作用,那么您可能需要应用一个更为核心的修剪,就像.Happy编码中使用的那样!出于某种原因,当没有值时仍然输出
    • 字体:
    • 。@ChristopherBurton当我第一次发布代码时,我有
      $Typeface=$page->typeface()
      (复制/粘贴错误)。我将其更改为
      $typeface===$page->typeface()
      (注意
      ===
      )。希望这就是为什么它对你不起作用的原因?我还是得到了同样的结果。天哪,我不想浪费你的时间…你可能会修剪,就像其他人说的:
      ?当我使用这些变量进行测试时:
      ,其中
      $foo
      是我的
      $page->typeface()
      ,它对我有效…什么是$page->typeface()预期的返回类型/值?我假设它是空/非空字符串返回?再说一次,我并不想浪费你的时间(看起来你已经得到了很多很好的答案)。:@ChristopherBurton即使你已经得到了答案,我也更新了我的答案…我最初的想法是正确的(请参阅上面的编辑).我有时喜欢在
      if()中指定变量
      check…减少了需要处理的代码行。如果这不起作用,那么您可能需要应用更为核心的修剪,就像在.Happy coding!@christopherton Edited…现在就试试看,这样做行得通。不过,我仍然对视图源代码中的空行有问题。@christopherton Edited…现在就试试看,这样做行得通。我仍然有问题但是,在视图源中存在一个空行问题。