ホームページ > php教程 > php手册 > PHP3 中国語ドキュメント (続き 3)

PHP3 中国語ドキュメント (続き 3)

WBOY
リリース: 2016-06-21 09:10:30
オリジナル
763 人が閲覧しました

中文

PHP スクリプト言語は、連続したステートメントを使用して作成されます。ステートメントは、代入ステートメント、関数呼び出し、ループ、条件ステートメント、または何も行わないステートメント (空のステートメント) の場合もあります。多くの場合、ステートメントはセミコロン (;) で終わります。さらに、ボリューム サポートを使用すると、ステートメントのグループを圧縮して、ステートメントをステートメント グループにグループ化できます。ステートメント グループは、それ自体に関するステートメントです。この章では、さまざまなステートメントのタイプについて説明します。



定数
PHP は、実行時により多くの型を定義できるようにするために、構造体に提供されるいくつかの定数を定義します。定数と変数は非常によく似ていますが、構文は若干異なります。

事前定義された定数は __FILE__ と __LINE__ です。これらを処理すると、ファイル名と行番号が一致することがわかります。次の例を参照してください:



例 6-1. __FILE__ と __LINE__ の使用 //__FILE__ と __LINE__ を使用する


function report_error($file, $line, $message) {

echo "$line の $file でエラーが発生しました: $message.";



report_error(__FILE__,__LINE__, "問題が発生しました!"

?>関数define()およびundefine()は、他の定数を定義するために使用されます。定数を定義する
undefine ("CONSTANT");



式は PHP の最も重要な基礎です。 PHP では、作成するほぼすべてが式です。式を定義する最も簡単かつ正確な方法は、「すべてに値がある」ということです。



すぐに思い浮かぶ簡単な例は、定数と変数です。 「$a = 5」と入力すると、変数「$a」に値「5」が代入されます。明らかに、値 5 が取得されます。つまり、「5」は値 5 の式です (この例では)。たとえば、「5」は整数定数です)。

代入後の$aの値は5なので、このように$b = $aと書くと$b = 5と同じ意味になります。 つまり、$aは5つの式の値を持つ式になります。すべてが正常に動作している場合、次のようなことが起こります。たとえば、次の関数を考えてみましょう。関数の概念に精通していると仮定すると (そうでない場合は、第 4 章を参照してください)、$c=foo() は $c=5 と本質的に同じであると考えることができます。関数は戻り値に基づいて式を評価します。foo() は 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 増加することです。他の言語では、変数 $a の現在の値に 3 を加算するために、「$a+=3」と書くことができます。この式の正しい意味は次のとおりです。 「$a の値を読み取り、3 を加算して、それを $a に代入します。」 このようなステートメントは、より簡潔で簡潔であることに加えて、式 '$a+=3' の値と同様に実行されます。これは 3 ではなく、$a+3 の組み合わせの値 ($a に代入される値) であることに注意してください。複合代入演算子。たとえば、' $a-=5'($a=$a-5)、'$b*=7'($b x 7) などです。

に追加していない場合。他の言語では、次の式は非常に奇妙に見えると思われるでしょう。これは 3 項条件演算子です:

$first ? $second : $third

最初の部分式の値が true (ゼロ以外) の場合、その 3 番目の部分式は次のようになります。 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 になります。* /

この章の冒頭で、「式はステートメントになる可能性がある」と言いました。ただし、すべての式がステートメントであるわけではありません。この場合、ステートメントは式とセミコロンの形式になります。'$b=$a=5;' では、$a=5 が有効です。ただし、「$b=$a=5;」は有効なステートメントです

多くの場合、最後に言及する価値があるのは式の true 値または false 値です。条件付き実行とループでは、式の正確な値には興味がなく、それが TRUE (真) か FALSE (偽) かだけが重要です (PHP には特別なブール型の計算方法はありません)。 PHP の式の真と偽は Perl と同じです。ゼロ以外の数値はすべて TRUE、ゼロは FALSE です。負の数値もゼロではないため、空の文字列も真になります。 '0' は FALSE、他のすべての文字列は TRUE です。非スカラー数値 (配列またはオブジェクト) の場合、値に要素が含まれていない場合は FALSE とみなされ、それ以外の場合は TRUE となります。強力な式ツールであり、その完全な説明はこのマニュアルの範囲を超えています。 About 上記の例は、式とは何か、および有効な式を構築する方法についての良いヒントを提供します。このマニュアルの残りの部分では、 を使用します。有効な PHP 式を表す 'expr'



IF
IF 構造はどの言語でも最も重要な機能の 1 つであり、PHP にも含まれています。これにより、対応するプログラムセグメントの実行中に条件判断を行うことができます。 PHP の IF ステートメントの特性は C:

if (expr)

statement

と非常に似ています。式フラグメントを記述した後、式の値が true であるかどうかが判断されます。式が true と評価された場合、PHP はステートメントを実行します。値が false の場合、PHP はステートメントをスキップします。



次の例では、$a が $b より大きい場合、「a は b より大きい」と表示されます。

if ($a > $b)

print "a is big than b";



通常、ユーザーは条件付きで実行される複数のステートメントを使用したいと考えます。もちろん、ここですべてのステートメントに対して IF 条件判断を使用する必要はありません。ユーザーは一連のステートメントを使用してこの機能を実現できます。たとえば、$a が $b より大きい場合、次のコードは「a は b より大きい」と表示し、$a の値を $b に割り当てます。

if ($a > $b) {

print "a is big than b";

$b = $a;

}



IF ステートメントは、これを使用して別の IF ステートメント内にネストできます。 、ユーザーは、さまざまな状況に応じて、プログラムのさまざまな部分を実行できます。



ELSE
通常、条件が満たされた場合には特定のステートメントを実行し、条件が満たされない場合には別のプログラムを実行したい場合があります。これが ELSE ステートメントの動作です。 ELSE は、IF ステートメントの機能を拡張したもので、条件が false の場合、ELSE に続くステートメントが実行されます。たとえば、次のプログラム セグメントでは、$a が $b より大きい場合は「a は b より大きい」と表示され、それ以外の場合は「a は b より大きくありません」と表示されます。

if ($a > $b) {

print "a は b より大きい";

} else {

print "a は 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 に等しい」、$a
if ($a > $b) {

print "a は b より大きい";

} elseif ($a == $b) {

print "a は b に等しい"; else {

print "a is small than b";

}



同じ IF ステートメント内に複数の ELSEIF ステートメントを含めることができます。最初の ELSEIF 式 (存在する場合) が true の場合に実行されます。 PHP3 では、「else if」 (2 つの単語を使用) を記述することもでき、その効果は「elseif」 (1 つの単語) を使用した場合と同じです。それらの言語はわずかに異なるだけですが (C 言語に精通している場合は、その違いが C の場合と同様であることがわかります)、最終的には結果はまったく同じになります。



ELSEIF 文は、IF 文または前の ELSEIF の式が false で、現在の ELSEIF 文の式が true の場合にのみ実行されます。



IF ステートメントの対話型構文: IF().. ..ENDIF
PHP3 は、IF ステートメント内でステートメント グループを確立する別の方法を提供します。このアプローチは、IF ステートメント内で HTML をネストする場合に非常に一般的ですが、このアプローチはどこにでも適用できます。 {} の使用に加えて、IF 式の後にコロン、1 つ以上のステートメントを続け、ENDIF で終了することもできます。次の例に注意してください:





A = 5





上記の例では、HTML ステートメント「A = 5」が IF ステートメントにネストされています。この HTML ステートメントは、$a が 5 の場合に表示されます。

この対話型構文は、ELSE および ELSEIF ステートメントにも適用できます。次の例では、IF、ELSEIF、および ELSE ステートメントを対話形式で使用します。

if ($a == 5):

print "a == 6";

elseif ($a == 6):

print "a == 6";
print "!!!";

else:

print "a is not 5 or 6";



WHILE
WHILE ループは、PHP3 のループの簡単な例です。 C の場合とまったく同じように動作します。 WHILE ステートメントの基本構造は次のとおりです。

WHILE(expr) ステートメント



WHILE ステートメントの意味は非常に単純です。これは、WHILE 式が true である間、ネストされたステートメントを繰り返し実行するように PHP に指示します。式の値は各ループの開始時にチェックされるため、ネストされたステートメントの実行中に値が変更された場合でも、ループが完了するまで実行は終了しません。場合によっては、WHILE 式の値が最初に false である場合、これらのネストされたステートメントは一度も実行されません。

IF ステートメントの使用と同様に、{ } または次のような構文を使用して、同じ WHILE ループ内で複数のステートメントをグループとして使用できます。以下の 2 つの例の関数は同じです。つまり、1 から 10 までのすべての数値です:



/ * 例 1 */

$ i = 1; about ($ i & lt; = 10) {{) {

print $i++; /* 出力される値は増分前の

$i になります

(post-increment) */

}



/*example 2 */

$i = 1;

while ($i
print $i;

DO..WHILE
DO..WHILE ループは WHILE ループとよく似ています。 true である場合を除いて、値のチェックは各ループの最後に実行されます。ここでの主な違いは、DO..WHILE ループの場合、最初のループ処理が常に実行されることです (最後に真偽チェックが実行されるため)。標準の WHILE ループの最初のステートメントは、必ずしも実行されるわけではありません (真偽チェックはループの先頭で実行されるため)。



DO..WHILE ループステートメントの使用例を次に示します。この記事のループは 1 回だけ実行され、最初のループの実行が完了すると、チェック式が false ($I が 0 以下) になり、ループが終了します。



上級 C 言語ユーザーは、DO..WHILE ループの使用の違いを深く理解することができます。コード セグメントの実行中に実行を終了できるようにするために、DO..WHILE ( 0) ステートメントを使用する場合は、BREAK ステートメントの方法を使用します。次のコード スニペットはこれを示しています。
if ($i < $minimum_limit) {

break;

}

...プロセス i...

} while(0);何も理解できていませんが、心配しないでください。これらの機能を使用しなくても、非常に強力なコードを作成できます。



FOR
FOR ループは、PHP で最も複雑なループです。その特性は C 言語での動作に似ています。 FOR ループの構文は次のとおりです。



FOR (expr1; 2 番目の式が実行されます。その値が true の場合、ループは以下のネストされたステートメントの実行を継続します。値が false の場合、ループは終了します

各ループの最後に 3 番目の式が実行されます。

どの式も空にすることができます。式 2 (expr2) が空の場合、このループが実行される回数が不確実であることを意味します (C と同様、PHP ではこの式がデフォルトで true になります)。場合によっては、ループを終了する方法として FOR の真理値の代わりに条件付き BREAK ステートメントを使用したい場合があるため、このアプローチは思っているほど役に立ちません。



次の例に注目してください。すべて 1 から 10 までの数字が示されています。



/* example 1 */

for ($i = 1; $i <= 10; $i++) {

print $i;

}



/* 例 2 */

for ($i = 1;;$i++) {

if ($i > 10) {

Break;

print $i;



/* 例 3 */

$i = 1;for (;;) {

if ($i > 10)

{ Break;

print $i;

$i++;



/* 例 4 */

for ($i = 1; $i
もちろん、最初の例 (または 4 番目の例) が最適と思われますが、多くの状況で空の式を含む FOR ループを使用すると非常に便利であることがわかります。



PHP は、FOR ループでの対話型の「コロン構文」もサポートしています。例:

FOR (expr1; expr2; expr3): ステートメント;



FOR ステートメントを使用する他の言語では、配列を処理するためにこのステートメントがよく使用されます。 PHP でこれを行うには、WHILE ステートメントと list() および each() 関数を使用します。これらの関数関連の例を参照してください。



BREAK
BREAD 現在のループ本体から飛び出してループを早期に終了します

while ($i
if ($arr[$i] ==) "stop" ) {

break;

}

$i++;



CONTINUE
CONTINUE はこのループを終了し、ループ本体の先頭にジャンプし、次のループの判定を行います。

while (list ($key,$value) = each($arr)) {

if ($key % 2) { // 偶数のメンバーをスキップします

continue

}

do_something_odd ($value);

}



SWITCH
実際の問題では、複数の分岐の選択を処理するために複数のネストされた IF ステートメントを使用することが必要になることがよくありますが、より多くの分岐がある場合は、ネストされた IF ステートメントの層が多数存在します。プログラムが長くなり、読みやすくなります。PHP では、複数の分岐選択を直接処理するための SWITCH ステートメントが提供されています。1 つは一連の IF ステートメントを使用する、もう 1 つは 2 つの異なる方法を使用します。 SWITCH ステートメントを使用します。 :



/* example 1 */

if ($i == 0) {

print "i == 1"; ) {

print "i == 1";

}

if ($i == 2) {

print "i = 2"



/* 例 2 */



switch ($i ) {

case 0:

print "i = 0";

case 1:

case 2:

; print "i = 2 ";





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート