式は PHP の最も重要な基礎です。 PHP では、作成するほぼすべてが式です。式を定義する簡単ですが最も正確な方法は、「値を持つもの」です。
最も基本的な式の形式は定数と変数です。 「$a = 5」と入力すると、値「5」が変数 $a に割り当てられます。 「5」は当然、値 5 を持ちます。つまり、「5」は値 5 を持つ式です (ここで、「5」は整数定数です)。
代入後は、$a の値が 5 であることが期待されるため、$b = $a と書くと、$b = 5 と同じになることが期待されます。つまり、$a は値 5 の式でもあります。すべてが正しく機能すれば、まさにこれが起こることになります。
もう少し複雑な式の例は関数です。たとえば、次の関数について考えてみましょう:
109b64af5b0a612c3a896fd1f8fcdf20
関数の概念をすでに理解していると仮定して、$c = foo と入力します。 () 本質から 基本的には $c = 5 と書くようなものですが、これは正しいです。関数も式であり、式の値はその戻り値です。 foo() は 5 を返すため、式「foo()」も 5 と評価されます。多くの場合、関数は静的な値を返すだけでなく、何かを計算する場合があります。
もちろん、PHP の値は整数ではないことがよくあります。 PHP は、整数、浮動小数点、文字列、ブール値 (ブール値) の 4 種類のスカラー値をサポートしています (スカラー値は配列などの小さな単位に分割できません)。 PHP は、配列とオブジェクトという 2 つの複合タイプもサポートします。どちらの型も変数に代入したり、関数から返すことができます。
PHP は他の言語と同様に式パスに沿って開発されますが、さらにその先を進みます。 PHP は、ほとんどすべてが式であるという意味で、式指向の言語です。先ほど検討した例「$a = 5」について考えてみましょう。明らかに、ここには 2 つの値が関係しています。それは、整定数「5」の値と、同じく 5 に更新される変数 $a の値です。しかし実際には、付加価値、つまり付加価値ステートメント自体の価値が関係しています。代入ステートメント自体は、割り当てられた値 (5) に評価されます。これは事実上、「$a = 5」は、その内容に関係なく、5 と評価される式であることを意味します。したがって、「$b = ($a = 5)」と書くことは、「$a = 5; $b = 5」と書くことと同じです (セミコロンはステートメントの終わりを示します)。代入演算の順序は右から左なので、「$b = $a = 5」と書くこともできます。
もう 1 つの式指向の良い例は、前後のインクリメントとデクリメントです。 PHP およびその他のほとんどの言語のユーザーは、variable++ および variable-- シンボルに精通している必要があります。つまり、インクリメント演算子とデクリメント演算子です。 PHP では、C 言語と同様に、プレインクリメントとポストインクリメントの 2 種類のインクリメントがあり、基本的に、プレインクリメントとポストインクリメントの両方で変数の値が増加し、変数への影響は同じです。異なる値は、インクリメント式の値です。プレインクリメントは、「++$variable」と記述され、増加した値を見つけます (PHP は、変数の値を読み取る前に変数の値をインクリメントするため、「プレインクリメント」と呼ばれます)。ポストインクリメントは、「$variable++」と記述され、インクリメントされる前に変数の元の値を検索します (PHP は変数の値を読み取った後に変数の値をインクリメントするため、「ポストインクリメント」と呼ばれます)。
一般的に使用される式のタイプは比較式です。これらの式は FALSE または TRUE に評価されます。 PHP は、> (より大きい)、>= (以上)、== (等しくない)、<(以下)、および <= (以上) をサポートします。に等しい)。 PHP は、等価演算子 === (値と型が同じ) と非同一演算子 !== (値または型が異なる) もサポートしています。これらの式は、if 文などの条件判断文でよく使用されます。
ここで学習する最後の例は、結合された算術代入式です。変数 $a に 1 を追加したい場合は、単に「$a++」または「++$a」と書くだけで済むことはすでにわかっています。しかし、1 より大きい値、たとえば 3 を変数に追加したい場合はどうすればよいでしょうか? 「$a++」を複数回記述することもできますが、これは明らかに効率的で快適な方法ではありません。より一般的な方法は「$a = $a + 3」です。 「$a + 3」は、$a に 3 の値を加えたものと等しく、その結果の値が変数 $a に再代入されるため、$a の値は 3 増加します。 PHP や C などの他のいくつかの言語では、上記の関数を短い形式で実行できるため、より明確かつ迅速に実行できます。 $a の現在の値に 3 を加算するには、「$a += 3」と記述します。ここでの意味は、「変数 $a の値を取得し、3 を加算し、その結果を変数 $a に再度代入する」ということです。よりシンプルかつ明確であることに加えて、より高速に実行することもできます。 「$a += 3」の値は、通常の代入演算の値と同様に、代入後の値になります。これは 3 ではなく、$a に 3 を加えた値であることに注意してください (この値は $a に割り当てられます)。任意の二項演算子で、「$a -= 5」(変数 $a の値から 5 を減算)、「$b *= 7」(変数 $b に 7 を乗算) などの演算割り当てパターンを使用できます。 。
他の言語で見たことがないと奇妙に見えるかもしれない、三項条件演算子という式もあります:
<?php $first ? $second : $third ?>
最初の部分式が TRUE (ゼロ以外) と評価される場合、2 番目の部分式が評価されます、その値は条件式全体の値です。それ以外の場合、3 番目の部分式が評価され、その値が式全体の値になります。
次の例は、前および後のインクリメントと式一般を理解するのに役立ちます:
<?php function double($i) { return $i*2; } $b = $a = 5; /* assign the value five into the variable $a and $b */ $c = $a++; /* post-increment, assign original value of $a (5) to $c */ $e = $d = ++$b; /* pre-increment, assign the incremented value of $b (6) to $d and $e */ /* at this point, both $d and $e are equal to 6 */ $f = double($d++); /* assign twice the value of $d before the increment, 2*6 = 12 to $f */ $g = double(++$e); /* assign twice the value of $e after the increment, 2*7 = 14 to $g */ $h = $g += 10; /* first, $g is incremented by 10 and ends with the value of 24. the value of the assignment (24) is then assigned into $h, and $h ends with the value of 24 as well. */ ?>
一部の式はステートメントとして扱うことができます。このときの文の形式は expr;、つまりセミコロンで終わる式となります。 '$b = $a = 5;' では、 '$a = 5' は有効な式ですが、それ自体はステートメントではありません。 「$b = $a = 5;」は有効なステートメントです。
最後に言及する価値があるのは、式の真理値です。多くのイベント (主に条件付き実行やループ) では、式の特定の値は考慮されず、式の値が TRUE か FALSE かだけが考慮されます。定数 TRUE と FALSE (大文字と小文字は区別されません) は、2 つの可能なブール値です。式は、必要に応じて自動的にブール値に変換されます。