ハマった

しょーもないミスでハマった。

class Test
{
    var $var;
    function execute{
        $property = & this->var;
        $property = 'a';

        // ごちゃごちゃ処理

        // 下の方で

        $property = get_class_vars($class);
    }
}


こんなん書いてて、なんで内部変数が勝手に書き変わるんだろうと。。。
そりゃー当然だ。
もしかして変な仕様?とか意味の分からない勘違いしてた。
上のようにシンプルに書き直してやっと理解した。


スコープは大事だね。。
C言語

int main(){
    int a = 1;

    {
        int a = 2;

        printf('%d\n', a);
    }

    printf('%d\n', a);

    return 0;
}

/*
 * 結果
 * 2
 * 1
 */

みたいにスコープを限定したいな。
関数はこまめに分けろってことを身をもって体験。