PHP スクリプト言語は、連続したステートメントを使用して作成されます。ステートメントは、代入ステートメント、関数呼び出し、ループ、条件ステートメント、または何も行わないステートメント (空のステートメント) の場合もあります。多くの場合、ステートメントはセミコロン (;) で終わります。さらに、ボリューム サポートを使用すると、ステートメントのグループを圧縮して、ステートメントをステートメント グループにグループ化できます。ステートメント グループは、それ自体に関するステートメントです。この章では、さまざまなステートメントのタイプについて説明します。 定数 PHP は、実行時により多くの型を定義できるようにするための構造を提供するために、いくつかの定数を定義します。定数と変数は非常によく似ていますが、構文は若干異なります。 事前定義された定数は __FILE__ と __LINE__ です。これらを処理すると、それらがファイル名と行番号に一致することがわかります。次の例を参照してください: 例 6-1. __FILE__ と __LINE__ の使用 //__FILE__ と __LINE__ の使用 関数 define() と undefine() を使用して他の定数を定義できます。 例 6-2. 定数の定義 //定数の定義 式 式は PHP の最も重要な基礎です。 PHP では、作成するほぼすべてが式です。式を定義する最も簡単かつ正確な方法は、「すべてに値がある」ということです。すぐに思い浮かぶ簡単な例は、定数と変数です。 「$a = 5」と入力すると、変数「$a」に値「5」が代入されます。明らかに、値 5 が取得されます。つまり、「5」は値 5 の式です (この例では)。たとえば、「5」は整数定数です)。 代入後の $a の値は 5 なので、$b = $a と書くと、$b = 5 と同じ意味になります。つまり、$a は値 5 の式です。正常に動作すると、次のようなことが起こります。たとえば、次の関数を考えてみましょう。関数の概念を理解していると仮定します。よく知らない場合は、第 4 章を参照してください)、$c=foo() は $c=5 と本質的に同じであると考えるかもしれませんが、それは正しいでしょう。 () は 5 を返します。式 'foo()' の値は 5 です。一般に、関数は状態値を返すだけではなく、通常は何かを計算します。 もちろん、PHP の値は整数である必要はありません。多くの場合、PHP は整数、浮動小数点、文字列の 3 つのスカラー型の値をサポートします。 (スカラー値は、より小さな部分に分割できない数値です。たとえば、配列にすることはできません)。 PHP は、配列とオブジェクトという 2 つの合成タイプの値もサポートしています。各データ型は変数に割り当てることも、関数によって返すこともできます。 これまでのところ、PHP/FI 2 のユーザーは変更に気付かないはずです。ただし、他の多くの言語と同様に、PHP では式をより深いレベルにまで引き上げます。 PHP は式指向の言語であり、ほとんどすべてが式です。すでに扱った式「$a=5」を考えてみると、ここには定数の値が 2 つ含まれていることが簡単にわかります。 「5」と $a の値。 $a の値も 5 に更新されました。しかし実際には、追加の値が関係しており、その値は代入ステートメント自体が割り当てられた値 (この例では 5) を計算します。つまり、「$a=5」は、何をしても 5 と評価される式であることを意味します。したがって、'$b=($a=5)' のような一部の式は、実際には '$a=5;$b=5' と同じになります (代入ステートメントが To parse であるため、セミコロンは式の終わりを表します)。右から左に「$b=$a=5」と書くこともできます。式のもう 1 つの良い例は、PHP/FI 2 や他の多くの言語のユーザーには、インクリメント記号とデクリメント記号である表記法 (variable++ および variable--) によく知られているものです。 PHP/FI 2 では、ステートメント '$a++' には値がありません (式ではありません)。そのため、値を割り当てたり、いかなる方法でも使用したりすることはできません。PHP は、これらの式を開発することによって強化され、インクリメントする機能を備えています。 /decrement は、C 言語と同様に、インクリメントにはプレインクリメントとポストインクリメントの 2 つの形式があり、どちらのインクリメントも基本的に変数を 1 ずつ増やし、変数に 1 を加算します。それらの違いは、インクリメント式自体の値です。インクリメント前の形式は '++$variable(variable)' で、これはインクリメント値を計算します (PHP は値を読み取る前に変数の値をインクリメントするため、これが呼び出されます)。ポストインクリメントの形式は '$variable++' で、変数がインクリメントされる前に $variable の元の値が計算されます (PHP は最初に変数の値を読み取り、次にそれをインクリメントするため、ポストインクリメントと呼ばれます) ) 式の最後のもの 例 演算子代入式の組み合わせを扱います。変数 $a の値を 1 ずつインクリメントしたい場合は、単純に '$a++' または '++$a と書くことができることはすでにわかっています。しかし、値を 1 だけでなく、たとえば 3 に増やしたい場合は、「$a++」を複数回使用できますが、これは明らかに効率的で簡潔な方法ではありません。「$a=」と記述します。 $a+3'。'$ a=$a+3' は、変数 $a に 3 を加えた値を計算し、変数 $a に再割り当てされます。最終的な結果は、変数 $a の値が 3 増加することです。 C などの他のプログラムと同様に、PHP 一部の言語では、変数 $a の現在の値に 3 を加算するために、「$a+=3」と書くことができます。この式の正しい意味は次のとおりです。 「$a の値を読み取り、3 を加算し、それを $a に割り当てます。」 このようなステートメントは、より簡潔で簡潔であることに加えて、式 '$a+=3' の値と同様に、より高速に実行されます。通常の代入ステートメントは、割り当てられた値です。これは 3 ではなく、$a+3 の組み合わせの値 ($a に割り当てられた値) を組み合わせて使用できることに注意してください。たとえば、「$a -=5」($a=$a-5)、「$b*=7」($b の 7 倍) などです。他の言語で追加していない場合は、次のような式を思い浮かべるでしょう。これは非常に奇妙に見えます。これは 3 項条件演算子です。 $first ? $second : $third 最初の部分式の値が true (ゼロ以外) の場合、2 番目の部分式が評価されます。それ以外の場合は、3 番目の部分式が評価され、その結果が条件式全体の値として使用されます。次の例は、前インクリメント、後インクリメント、および後インクリメントを一般的に理解するのに役立ちます。 function double( $i) { return $i*2;} $b = $a = 5; /* $a と $b に 5 を代入します */ $c = $a++; $a の元の値 (5 ) を $c に代入します */ $e = $d = ++$b; /* インクリメント前に、インクリメント操作後の $b の値 (6) を $e と $d に代入します*/ /* このとき $ d と $e は両方とも (6) に等しい */ $f = double($d++); /* $d の元の値 (6) を 2 倍にして $f に代入します。 $f は (12)*/ $g = double(++$e); /* 最初に $e に対してインクリメント演算を実行し、それから 2*7 = 14 が $g*/ $ に代入されます。 h = $g += 10; /* まず、$g が 10 ずつ増加し、最終結果は 24 になります。この値を $h に代入すると、$h の最終結果も 24 になります。*/ の先頭でこの章では、「さまざまな種類のステートメントについて説明します」と述べましたが、式はステートメントになる可能性がありますが、この場合、ステートメントは式と 'expr'';' の形式になります。 '$b=$a=5;' では、 $a=5 は有効な式ですが、'$b=$a=5;' は有効なステートメントです。言及する価値があるのは、式の値が true または false であるということです。多くの場合、主に条件付き実行やループでは、式の正確な値には興味がなく、それが TRUE () を意味するかどうかのみに興味があります。 true) または FALSE (false) (PHP には特別なブール型はありません)。PHP で式の真偽を計算する方法は、ゼロ以外の値はすべて TRUE、ゼロは FALSE です。 ! 負の数値もゼロではないので、それらも true であることに注意してください。空の文字列と文字 '0' は、非スカラー数値 (配列またはオブジェクト) の場合は TRUE です。 value に要素が含まれていない場合は FALSE とみなされ、それ以外の場合は TRUE と見なされます。PHP は完全で強力な式ツールを提供しますが、それについて詳しく説明することはこのマニュアルの範囲を超えています。上記の例は、式が何であるかについての良いヒントを提供します。このマニュアル全体で、有効な PHP 式を表すために「expr」を使用します。IF 構文はあらゆる言語の最も重要な機能の 1 つであり、PHP にはそれが含まれています。これにより、対応するプログラムセグメントの実行中に条件判断を行うことができます。 PHP の IF ステートメントの特性は C と非常に似ています。if (expr) ステートメントは、式フラグメントを記述した後、式の値が true かどうかを判断します。式が true と評価された場合、PHP はステートメントを実行します。値が false の場合、PHP はステートメントをスキップします。 次の例では、$a が $b より大きい場合、「a は b より大きい」と表示されます。if ($a > $b) print "a は b より大きい"; 通常、ユーザーは条件付きで実行される複数のステートメントを使用したいと考えます。もちろん、ここですべてのステートメントに対して IF 条件判断を使用する必要はありません。ユーザーは一連のステートメントを使用してこの機能を実現できます。たとえば、$a が $b より大きい場合、次のコードは「a は b より大きい」と表示し、$a の値を $b に割り当てます。 if ($a > $b) { print "a is big than b"; $b = $a; } これを使用して、ユーザーはさまざまな状況に応じてプログラムを実行できます。その異なる部分。 ELSE 一般に、条件が満たされた場合は特定のステートメントを実行し、条件が満たされない場合は別のプログラムを実行することが必要な場合があります。これが ELSE ステートメントの動作です。 ELSE は、IF ステートメントの機能を拡張したもので、条件が false の場合、ELSE に続くステートメントが実行されます。たとえば、次のプログラム セグメントでは、$a が $b より大きい場合は「a は b より大きい」と表示され、それ以外の場合は「a は b より大きくありません」と表示されます。 if ($a > $b) { print "a is big than b"; } else { print "a is NOT big than b"; } ELSE ステートメントは、IF 式の値が false の場合にのみステートメントを実行するわけではありません。 IF を続けると ELSEIF ステートメントになり、これを使用して誤った状況をさらに分析できます (以下を参照)。 ELSEIF ELSEIF は、その名前が示すように、IF と ELSE を組み合わせたものです。 ELSE と同様に、IF ステートメントの FALSE の処理を拡張します。ただし、ELSE とは異なり、ELSEIF はすでに偽である条件を再度判断し、その判断結果に従って処理します。たとえば、次のコードは、$a>$b の場合は「a が b より大きい」と表示します。$a が $b より大きくない場合は、$a==$b の場合に「」と表示されます。 a は b に等しい" if $a $b) { print "a は b より大きい"; } elseif ($a == $b) { print "a は b に等しい"; } else { print "a は b に等しい" small than b"; } 同じ IF ステートメント内に複数の ELSEIF ステートメントを含めることができます。最初の ELSEIF 式 (存在する場合) が true の場合に実行されます。 PHP3 では、「else if」(2 つの単語を使用) を記述することもでき、その効果は「elseif」(1 つの単語) を使用した場合と同じです。それらの言語はわずかに異なるだけですが (C 言語に精通している場合は、その違いが C の場合と同様であることがわかります)、最終的には結果はまったく同じになります。 ELSEIF ステートメントは、IF ステートメントまたは前の ELSEIF の式が false であり、現在の ELSEIF ステートメント テーブル
の場合にのみ false になります。