簡単に言えば、静的に型付けされた言語では、型はstaticです。つまり、変数を型に設定すると、変更できなくなります。これは、タイピングが参照する値ではなく変数に関連付けられているためです。
たとえばJavaの場合:
String str = "Hello"; //statically typed as string
str = 5; //would throw an error since java is statically typed
のに対して動的型付け言語の種類があり、ダイナミックあなたが型に変数を設定した後、あなたはそれを変更することができることを意味し、。これは、タイピングが変数ではなく値に関連付けられているためです。
たとえばPythonでは:
str = "Hello" # it is a string
str = 5 # now it is an integer; perfectly OK
一方、言語の強い/弱い型付けは、暗黙的な型変換に関連しています(@Darioの回答から一部引用):
たとえばPythonでは:
str = 5 + "hello"
# would throw an error since it does not want to cast one type to the other implicitly.
一方、PHPでは:
$str = 5 + "hello"; // equals 5 because "hello" is implicitly casted to 0
// PHP is weakly typed, thus is a very forgiving language.
静的型付けにより、コンパイル時に型の正確性をチェックできます。通常、静的型付け言語はコンパイルされ、動的型付け言語は解釈されます。したがって、動的に型付けされた言語は、実行時に入力をチェックできます。