1
0

More than 3 years have passed since last update.

[PHP]静的・動的について※学習用メモ

Posted at

静的・動的について

業務をしつつプログラミングを勉強し始めて、静的・動的について当たり前のように使っているがしっかり調べられておらず、整理しようと思ったので整理。

静的とは

・静的型付け(せいてきかたづけ、英: static typing)とは、プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型が、コンパイル時など、そのプログラムの実行よりも前にあらかじめ決められている、という型システムの性質のことである。(wikipediaより抜粋)

小難しいので自分なりに整理

・プログラム実行時に値が切り替わったりせず、事前に設定された状態を保持し続けている状態、というか型

PHPで静的なプロパティを宣言する際、こんな感じ。

静的に変数を宣言
class test
{
    public static $A = 1;
}

上記のようにstaticを付けて宣言すると、静的に定義された状態となる。

staticで静的にクラスのプロパティやメソッドを定義すると、クラスをインスタンス化せずに用いることができる。
また、staticなプロパティは、インスタンス化されたクラスオブジェクトからアクセスすることはできない。
(staticなメソッドはアクセス可能。)

動的とは

・動的型付け(どうてきかたづけ、英: dynamic typing)とは、プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などそのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質のことである。(wikipediaより抜粋)

こちらも小難しいので自分なりに整理

・静的のように状態を保持するのではなく、プログラム実行時の実際の値となる

静的に対して、動的な変数は中身がその時その時の状態で変わりますよ、ということ

動的に変数を宣言
class test
{
    public $A = (初期値);
}

上記のようにstaticつけずに定義すれば、プログラムによって変数内の値が編集可能となる。

また、静的な定義に対し、動的なクラスのプロパティ、メソッドはインスタンス化しないとアクセスができない。

まとめ

・静的な定義をすると、そのプロパティやメソッドは事前に設定された状態を保持し続ける

・動的な定義をすると、そのプロパティやメソッドはプログラム実行時の実際の値がそのものの値となる

基本を一つ一つ着実に学習していき、よりよいコードを書けるようになっていきたいですなぁ。。。(勉強あるのみ)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0