0

foreachifステートメント内にループがあります。私のコードは省略形です。条件が戻っforeachた場合にループを実行せず、代わりに「申し訳ありませんがデータベースが空です!」というメッセージをエコーアウトします。iftrue

関数型コード

<?php if (!$check == 0) : ?>
    <?php foreach... ?>
       ...
    <?php endforeach; ?>
<?php endif; ?>
<?php if ($check == 0) echo 'Sorry database is empty!'; ?>

このコードについて私が気に入らないのは、2つの別々のif条件があることです。確かにそれは正常に機能しますが、私はelse最初にを持っていることを望みifます。

  1. 私がやりたいことの正しい構文は何ですか?


あるいは、あなたの答えが次のようなものである場合:

$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

それがどのように実行を停止するかを説明しますforeach

4

3 に答える 3

0

また、 foreach ループを別のメソッドに抽出することも考えられます。別のファイルまたは同じファイルに executeLoop メソッドがあります。

<?php 
   function executeLoop()
   {
     foreach(..)
     {
       //do something
     }
  }
?>
enter code here

数行のコードの後、次のことができます。

<?php (condition)?executeLoop() : echo $something;?>

良いことは、後で必要に応じてコードを再利用できることです。

于 2012-10-10T00:20:47.150 に答える
0

else を使用するだけです:

<?php if ($check !== 0) : ?>
    <?php foreach... ?>
       ...
    <?php endforeach; ?>
<?php else: echo 'Sorry database is empty!'; ?>
<?php endif; ?>

これを短縮することもできます:

$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

これだけに:

$var_is_greater_than_two = ($var > 2); // returns true
于 2012-10-10T00:16:43.047 に答える
0

if に else を追加してみませんか?コード ブロックは、Zenf フレームワークのビュー スクリプトに似た特別なレンダリングのように見えます。特別な構文で else が許可されていない限り、この方法で実行できるはずです。

<?php if (!$check == 0) : ?>
   <?php foreach... ?>
   ...
  <?php endforeach; ?>
<?php else :  ?>
      Sorry database is empty!
<?php endif; ?>
于 2012-10-10T00:18:12.637 に答える