PHP は弱い型指定言語です。
変数のデータ型を PHP に宣言する必要はないことに注意してください。
PHP は、変数をその値に基づいて正しいデータ型に自動的に変換します。厳密に型指定されたプログラミング言語では、変数を使用する前にその型と名前を宣言 (定義) する必要があります。
1. まず、いくつかの基本概念
プログラム エラー
トラップ エラーを定義します。 Java での 0 による除算、配列範囲外アクセス、トラップされないエラーなど、プログラムの実行を終了させます。エラー後も実行は継続されますが、任意の動作が発生する可能性があります。たとえば、C のバッファ オーバーフロー、エラー アドレスへのジャンプ
禁止された動作
言語を設計するとき、一連の禁止された動作を定義できます。トラップされていないエラー。ただし、トラップされたエラーが含まれている可能性があります。
行儀が良い、行儀が悪い
行儀が良い: プログラムの実行中に禁止された動作が不可能な場合、行儀が良い。
不正な動作: それ以外の場合、不正な動作です...
2. 上記の概念を使用して、強い型と弱い型、静的型と動的型について議論しましょう
強い型と弱い型
強い型付き: 言語内のすべてのプログラムが適切に動作する場合、つまり、禁止された動作が不可能な場合、その言語は強く型付けされています。
弱い型 弱い型付け : それ以外の場合、弱い型付けされます。たとえば、C 言語のバッファ オーバーフローは、トラップされたエラー、つまり禁止された動作に属します。したがって、C は型が弱い人です。前の方も言っているように、型が弱い言語は、型チェックがそれほど厳密ではありません。暗黙的な型変換を許容するため。たとえば、C言語のintはdoubleに変換できます。その結果、禁止された動作が簡単に生成されるため、弱く型付けされます
動的、静的型
静的に静的型: 不正な動作をするプログラムがコンパイル時に拒否される場合、そのプログラムは静的に型付けされます;
動的型 Dynamiclly: 不正な動作が実行時に拒否される場合、動的に型付けされます。
3. 誤解
C言語ではint a, int bなどを書く必要があるとみんな思っていますが、Pythonでは書く必要はありません(a, bを直接書いても大丈夫です) ) なので、C は静的ですが、Python は動的です。この理解は十分に正確ではありません。たとえば、Ocaml は静的に型指定されますが、明示的に記述する必要はありません。 Ocaml は静的暗黙型です
静的型は 2 つの型に分類できます:
型が言語文法の一部である場合、それは明示的に型指定された明示型です。型はコンパイルされます 導出は、ML や Haskell などの暗黙的な型指定です
4. 以下にいくつかの例を示します
型なし: Assembly
弱い型、静的型: C/C
弱い型、動的型チェック: Perl/PHP
強い型、静的型チェック: Java/C
#強い型、動的型チェック: Python、Scheme
static 明示的型: Java/C
static 暗黙の型: Ocaml、Haskell
上記の内容は参考用です。
推奨チュートリアル: PHP ビデオ チュートリアル
以上がphp は厳密に型指定された言語ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。