PHP(5.4系)で任意の変数の値がある時点以降に参照、代入されたかをチェックする方法はありますでしょうか？


やりたいことは、

[code]

    $hoge = 5;
    
[/code]

などとされている変数があって、それ以降、参照も代入もされていない場合、不要なのでそもそも消すということがやりたいのです。  
実際には、クラスのメンバ変数で、どこかのメソッドで参照してるか、変更してるかというのも加味して調べたいし、  
これが配列の場合に、

[code]

    $hoge['a'] = 5;
    $hoge['b'] = 5;
    $hoge['c'] = 5;
    
[/code]

とあある場合、

[code]

    $hoge['b']
    
[/code]

だけ、以降参照も変更もされていない  
みたいなことを知りたいのです。

すごく基本的なことで、それはこうするとすぐわかるよ  
みたいなことなのか、  
それとも、そんな都合の良いことはできない  
ということなのかもわからないのですが、アドバイスいただければ助かります。




あくまでデバッグ上でやるだけであればzend内部で持っている参照カウント`refcount`を見てやればいいかと思います。  
(確かPHP5～だったと思う)  
参照で引き渡した後の`refcount`も増加する点に注意してください。  
実装で行いたいのであればBLUEPIXYさんの言うとおりないです。

[code]

    function debug_zval($n){
        $zval_container = "";
        ob_start();
        debug_zval_dump($n);
        $zval_container = ob_get_contents();
        ob_end_clean();
        return $zval_container;
    }
    
    echo debug_zval($hoge['b']);
    
[/code]

[参考：参照カウントについて](http://php.net/manual/ja/features.gc.refcounting-basics.php)  
[参考：zendの値をダンプする](http://php.net/manual/ja/function.debug-zval-dump.php)




あくまでデバッグ上でやるだけであればzend内部で持っている参照カウント`refcount`を見てやればいいかと思います。  
(確かPHP5～だったと思う)  
参照で引き渡した後の`refcount`も増加する点に注意してください。  
実装で行いたいのであればBLUEPIXYさんの言うとおりないです。

[code]

    function debug_zval($n){
        $zval_container = "";
        ob_start();
        debug_zval_dump($n);
        $zval_container = ob_get_contents();
        ob_end_clean();
        return $zval_container;
    }
    
    echo debug_zval($hoge['b']);
    
[/code]

[参考：参照カウントについて](http://php.net/manual/ja/features.gc.refcounting-basics.php)  
[参考：zendの値をダンプする](http://php.net/manual/ja/function.debug-zval-dump.php)

