ホームページ  >  記事  >  バックエンド開発  >  php は厳密に型指定された言語ですか?

php は厳密に型指定された言語ですか?

王林
王林オリジナル
2019-09-19 17:56:594057ブラウズ

php は厳密に型指定された言語ですか?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。