17

次のコードは常に受け入れられますか?動作しているように見えますが、PHPのすべてのバージョンで一貫して動作しますか?

if ($x > $y)
    echo 'x is greater';
elseif ($x == $y)
    echo 'equal';
else
    echo 'y is greater';

ありがとう。

4

6 に答える 6

18

これはバージョン全体で受け入れられ、各制御ブロック内で1つのことだけを実行したい限り機能します。角かっこを使用すると、ブロックの開始位置と終了位置を簡単に追跡できるほか、ステートメントをもう1つ追加する必要がある場合の将来の保証にも役立ちます。

この投稿には、PHPのif/elseブロックのさまざまなオプションの概要が記載されています。

于 2012-07-02T04:57:11.220 に答える
5

これは問題なく機能し、多くの言語での場合、これは高速で実行する一般的な方法です。前に述べたように、複数行のコードを使用する場合は、角かっこでブロックに入れる必要があります。

たとえば、ここで:

if (x == 1)
 echo "x is one";
 echo "one is x";

その結果、x ==1の場合は「xisone」がエコーされ、x==1かどうかに関係なく毎回「oneisx」がエコーされます。

条件が真の場合にのみ両方のコード行を実行するには、コードをブロックで囲む必要があります。

if (x == 1)
{
 echo "x is one";
 echo "one is x";
}
于 2012-07-02T05:13:48.223 に答える
2

あなたのコードは受け入れ可能であり、すべてのバージョンのphpとIMHOで正常に機能します。phpだけでなく、他のすべての言語が単一のステートメントで同じことをサポートします。ただし、読みやすく、エラーを回避するために、後で複数のステートメントを追加する必要がある場合に備えて、ブロックステートメントを使用することをお勧めします。

于 2012-07-02T05:00:20.873 に答える
0

コードは常に受け入れられます。これは、PHPのすべてのバージョンで一貫して機能します。

于 2012-07-02T04:55:37.837 に答える
0

はい。ただし、1行の文である必要があります。より多くの行を使用する必要がある場合は、ブラケットが必要になります。

于 2012-07-02T04:56:11.837 に答える
0

PHPのオンラインドキュメントをご覧ください。

http://www.php.net/manual/en/control-structures.elseif.php

if($x > $y):
echo 'x is greater';
elseif($a == $b): // Note the combination of the words.
echo 'equal';
else:
echo 'y is greater';
endif;
于 2012-07-02T05:06:24.820 に答える