0
<?php
  $typeface = $page->typeface();
    if($typeface == '') {
  } else {
      echo '<li><span>Typeface: </span>'.$typeface.'</li>';
  }
?>


最初に以下のPHPコードを試しましたが
<li><span>Typeface: </span></li>、文字列が空の場合でもHTMLが出力されます。


<?php $typeface =  $page->typeface(); 
  if (!empty($typeface)): ?>
    <li><span>Typeface: </span><?php echo $typeface ?></li> 
  <?php endif; ?>


だから私の質問は、どうすれば一番上に短い方法でコードを書くことができますか?

4

5 に答える 5

3
$typeface = trim($page->typeface());
if($typeface != '')
    echo '<li><span>Typeface: </span>'.$typeface.'</li>';

編集:(新しい行を削除する)

$typeface = trim(str_replace(array("\r", "\r\n", "\n"), '', $page->typeface()));
if($typeface != '')
    echo '<li><span>Typeface: </span>'.$typeface.'</li>';
于 2012-12-08T09:09:42.123 に答える
2

これを試して

(isset($typeface) && !empty($typeface))?echo "<li><span>Typeface: </span>".$typeface."</li>":"";
于 2012-12-08T09:16:09.730 に答える
0

これを試して..

$typeface = $page->typeface();
echo $res=($typeface != '')?'<li><span>Typeface: </span>'.$typeface.'</li>':'';
于 2012-12-08T09:37:38.307 に答える
0
($typeface=="")?echo "":echo '<li><span>Typeface: </span>'.$typeface.'</li>';
于 2012-12-08T09:19:00.627 に答える
0

メソッドの戻り値の型と$page->typeface()コードの配置 (テンプレート ビューを使用しているように見えます) に応じて、次のオプションを選択できます。

<?php if ($typeface === $page->typeface()): ?>
    <li><span>Typeface: </span><?=$typeface?></li>
<?php endif; ?>

ここのPHPドキュメント:

制御構造の代替構文

<?=...?>短いタグを使用する際の注意事項については、こちらを参照してください。

に代わるもの<?=...?>は次のとおり<?php echo $typeface; ?>です。

それが役立つことを願っています!


編集:

実際、私は以前に自分自身を推測しました(睡眠不足のせいです). 私はもともとこのコードを持っていました(を除くtrim()):

<?php if ($typeface = trim($page->typeface())): ?>
    <li><span>Typeface: </span><?=$typeface?></li>
<?php endif; ?>

で変数$typefaceを設定している場所if()。この手法により、コードが 1 行短縮されます。

単純な文字列を使用した実際の例を次に示します。

<?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; ?>

...出力:(<li><span>Typeface: </span>I'm a string!</li>明らかに、オープニングとクロージングがありません<ul></ul>.

于 2012-12-08T09:22:30.573 に答える