0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPのextract()をもとに、シンボルテーブルについて深堀りしてみた

Posted at

はじめに

PHPでextract()関数を使ったとき、解説に

キーを変数として現在のシンボルテーブルにインポートします

と書かれていて、「シンボルテーブルって何?」と疑問に思いました。
そこで、少し深堀りしてみました。

シンボルテーブルとは?

  • どんな変数が今使えるのかを管理している場所
  • しかもグローバルスコープや関数スコープなど、それぞれのスコープごとに存在している

つまり、これまでよく耳にしていた「変数が使えるスコープ」という話も、
要するに「そのスコープのシンボルテーブルに登録されているかどうか」ということなんだ、と腑に落ちました。

普段、変数を定義しているときに「シンボルテーブルで管理されている」なんて意識したことはなかったので、今回仕組みを学べたのはすごく良い気づきでした。


気づきと学びまとめ

  • extract()は「今のスコープのシンボルテーブルに変数を追加する」関数
  • シンボルテーブルは「どんな変数が使えるか」をスコープごとに管理している
  • スコープ=シンボルテーブルの範囲

感想

ちょっとした気づきかもしれませんが、
こういう知識が増えると、プログラムを書くときにデータの動きがイメージできるようになって、 思った通りにコードを動かせる感覚が少しずつ積み上がっていきます。

データの流れや動きをイメージできると僕はよりプログラミングが楽しく感じるので、
こういう小さな疑問を大切にして、これからも知識を積み重ねていこうと想います。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?