[PHP] unsetのちょっと不思議な動き

中身をクリアしておく上でちょくちょく使うunset

しかし、こいつにはちょっとクセがある。

Global

以下のようにglobal変数を関数の中で変更する。

そうするとunsetした時点で、$g_dummyはローカル変数になり、それ以降はすべてローカル変数として振舞われる。

結果:

参照渡し

global変数はめったに使わないし、「へ~」で済んでたのだが、以下を見ると。

結果

なんだと・・・!?

配列の場合

結果:

ん~、配列の中身はunsetしても置き換わらない模様。

 

クラスの場合

結果:

ん~、特に違和感なし。

 

引数字体をunsetすると、その時点でアドレスがクリアされるから、別物になるってことですね。

まぁ、ちょっと気になって調べたけど普通の動きだった。

ただ、Globalをunsetしても元のGlobalの値が保持されるってのは特殊かも。

 

 

 

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">