PHP の基本: 制御構造
PHP の制御構造のほとんどは、C や Java などの他の主流言語の制御構造と同じです。
ここでは、よく考慮されるいくつかの異なる詳細を示します:
1> フロー制御の代替構文 (パスカル スタイル)
主に、if、while、for、foreach および switch ステートメントで使用されます。代替構文の基本的な形式は、左中括弧 ({) をコロン (:) に置き換え、右中括弧 (}) をそれぞれ endif;、endwhile;、endfor;、endforeach; に置き換えます。
例 (1):
if ($a == 5):
/*dosomething1*/
/*dosomething1*/
endif;
は次と同等です。 >if ($a == 5){
/*dosomething1*/
/*dosomething1*/
}
例 (2):
if ($a == 5):
エコー "a は 5";
エコー "...";
elseif ($a == 6):
エコー "a は 6"; ";
else:
echo "a is not 5 or 6";
endif;
2> for ステートメント (頻繁にテストし、十分な理解も必要です)。 >形式: ({} の代わりに `:`...`endfor;` をサポート)
for (expr1; expr2; expr3)
ステートメント
実行プロセス:
最初の式 ( expr1) が評価されますループが開始される前に無条件で 1 回。
expr2 は各ループの前に評価されます。値が TRUE の場合、ループが続行され、ネストされたループ ステートメントが実行されます。値が FALSE の場合、ループは終了します。
expr3 は各ループの後に評価 (実行) されます。
同等の while ステートメントは次のとおりです:
expr1;
while(expr2):
endwhile;
3>
break の機能は、現在の for、foreach、while、do-while、または switch 構造の実行を終了することです。
同時に、break の後に数値を指定して、ループから抜け出すレベルの数を決定できます。ブレーク 1 は、第 1 レベルのループから抜け出すことです。
C 言語に関する体系的な本を持っていないので、C に何かあるかどうかはわかりません。
4>foreach
形式:
a.foreach (array_expression as $value)
ステートメント
b.foreach (array_expression as $key => $value)
ステートメント
説明:
フォーマットは、指定された array_expression 配列を走査します。ループを通過するたびに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (そのため、次のループで次のセルが取得されます)。
b 形式でも同じことを行いますが、現在のユニットのキー名が各ループの変数 $key にも割り当てられる点が異なります。
注:
a. foreach の実行が開始されると、配列内のポインターは自動的に最初のユニットを指します。これは、foreach ループの前にreset()を呼び出す必要がないことを意味します。 /*reset(array &array): 配列の内部ポインタを配列 array の最初の要素に移動し、値を返します*/
b. 配列が参照されていない限り、foreach は指定された配列のコピーを操作します。配列自体。したがって、配列ポインタは each() 構造によって変更されず、返された配列単位を変更しても元の配列には影響しません。ただし、元の配列の内部ポインタは、配列の処理中に前方に移動します。 foreach ループが最後まで実行されると仮定すると、元の配列の内部ポインターは配列の末尾を指すことになります。
PHP 5 以降では、$value の前に & を追加することで、配列の要素を簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。
例:
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
// $arr は array(2, 4, 6, 8) になりました。
c.foreach は、エラー メッセージを抑制するために "@" を使用する機能をサポートしていません。
foreach の使用例:
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) ) = each($arr)) {
echo "値: $value
n";
}
foreach ($arr as $value) {
echo "値: $value
; br />n";
}
5>Continue の違い (Continue はほとんど使用しません)
関数: このループ内の残りのコードと次の反復をスキップするためにループ構造で使用されます。条件が true と評価されると、ループが開始されます。
break と同様に、ループ コードの最後にジャンプするレベルの数を決定する数値も受け入れます。
注: continue; は continue 1; と同じで、このレイヤーのこのサイクルの最後にジャンプします。 continue 2 は、このループから外層の終わりまでジャンプします。
6> switch:break と同様の機能です (他の言語とは異なります)。
7>declare
構造体は、コードの実行命令を設定するために使用されます。declare の構文は他のフロー制御構造と似ています。
declare (ディレクティブ)
ステートメント
ディレクティブ部分では、declare コード セグメントの動作を設定できます。現在、認識されるコマンドは 1 つだけです:ticks (詳細については、以下の Ticks コマンドを参照してください)。
declare コードセグメントのステートメント部分が実行されます。その実行方法と実行中に発生する副作用は、ディレクティブで設定された命令によって異なります。
declare 構造はグローバル スコープでも使用でき、その後のすべてのコードに影響します。
主な例はトリック用です (現在はトリックのみ)。
例:
function profile($dump = FALSE)
{
static $profile; / プロファイルに保存されている時間を返し、削除します。
if ($dump) {
$temp = $profile;
return ($temp); }
$profile[] = microtime();
}
// 登録された関数プロファイルは、ティック関数
register_tick_function("profile");
// 初期化。
profile();
// 2 (ticks=2) の単純なステートメントが実行されると、関数 profile() が 1 回呼び出されます。 🎜> for ($x = 1; $x echo like_text(md5($x), md5($x*$x)), "
;" ;
}
}
// プロファイル格納領域(profile)に格納されているデータを表示
print_r(profile (TRUE));
register_tick_function( ) スレッド Web サーバー モジュールでは使用しないでください。Tick は ZTS モードでは機能せず、Web サーバーがクラッシュする可能性があります。何度も衝突してしまいました。押し下げられた。
8>require と include の違い
:
include() は警告を生成しますが、require() は致命的なエラーを引き起こします。つまり、ファイルが見つからない場合にページの処理を停止したい場合は、require() を使用します。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。 PHP 4.3.5 より前では、インクルード ファイル内の構文エラーによってプログラムが停止することはありませんでしたが、このバージョンからは停止することに注意してください。
同じ点と使用法:
a. 変数スコープ:
ファイルがインクルードされると、そのファイルに含まれるコードは、「include ステートメント」が配置されている行の変数スコープを継承します。その時点から、呼び出し側ファイルのその行で使用可能な変数は、呼び出されたファイルでも使用できるようになります。ただし、インクルード ファイルで定義されたすべての関数とクラスにはグローバル スコープがあります。
呼び出し元ファイルの関数に「include ステートメント」が含まれる場合、呼び出されるファイルに含まれるすべてのコードは、その関数内で定義されているかのように動作します。したがって、その関数の変数スコープに従います。
b. 解析モード
ファイルがインクルードされると、構文パーサーはターゲット ファイルの先頭で PHP モードを終了し、HTML モードに入り、ファイルの末尾で再開します。このため、PHP コードとして実行されるオブジェクト ファイル内のコードは、有効な PHP 開始タグと終了タグ内に含める必要があります。
c. 条件ステートメントの形式の問題
include() と require() は特殊な言語構造であるため、条件ステートメントで使用する場合はステートメント グループ (中括弧内) に配置する必要があります。
include() は特殊な言語構造であるため、そのパラメータには括弧は必要ありません。戻り値を比較するときは注意してください。
d. 戻り値の処理
インクルードされたファイル内で return() ステートメントを使用すると、ファイル内のプログラムの実行を終了し、それを呼び出したスクリプトに戻ることができます。インクルードされたファイルから値を返すことも可能です。 include呼び出しの戻り値は通常の関数と同様に取得できます。これは、リモート ファイルの出力に有効な PHP 開始タグと終了タグ (他のローカル ファイルと同様) がない限り、リモート ファイルをインクルードする場合には機能しません。タグ内で必要な変数を定義できます。これは、ファイルがインクルードされる場所の後で使用できるようになります。
例:
return.php
==============
$var = 'PHP';
return $var; >noreturn.php
=============
$var = 'PHP';
testreturns.php
======= ======================
$foo = include 'return.php';
echo $foo; // 'PHP' を出力します。 >$bar = include 'noreturn.php'; // 1 を出力します
この現象を防ぐには、次のようにします。 include_once または require_once
f. その他:
PHP 4.0.2 より前では、次のルールが適用されます: require() は、その行が実行されない場合でも、常にターゲット ファイルの読み取りを試みます。全て。条件文は require() には影響しません。ただし、require() が配置されている行が実行されない場合、ターゲット ファイル内のコードは実行されません。同様に、ループ構造は require() の動作に影響を与えません。ターゲット ファイルに含まれるコードは依然としてループの本体ですが、require() 自体は 1 回だけ実行されます

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。
