On Tue, Nov 9, 2010 at 6:55 PM, Daevid Vincent <dae...@daevid.com> wrote:

> I've used variable variables before but for some reason I can't figure this
> snippet out. Why doesn't $ini_file get set (or appended to).

AFAIK variable variables can only reference actual variables--not array
subscripts or other non-variable syntax elements such as "->" or "::".
eval() can do this because it parses the code as PHP. Variable variables
take the *variable name* contained in the variable and look it up in the
current scope. This is a variable name:


This is not:


I think you can use references here to do what you need. Warning: I only
tested the basics of this in the interpreter without running this exact

    public function explode_ini()
        $ini_array = array();

        foreach($this->ini_array as $heading => $key_vals)
            foreach ($key_vals as $k => $v)
                $path = &$ini_array[$heading];
                $subsection = explode('.', $k);
                foreach ($subsection as $ss)
                    $path = &$path[$ss];
                $path = $v;

        $this->ini_array = $ini_array;


Reply via email to