public function performInclusions(&$attr)
    {
        if (!isset($attr[0])) {
            return;
        }
        $merge = $attr[0];
        $seen  = array(); // recursion guard
        // loop through all the inclusions
        for ($i = 0; isset($merge[$i]); $i++) {
            if (isset($seen[$merge[$i]])) {
                continue;
            }
            $seen[$merge[$i]] = true;
            // foreach attribute of the inclusion, copy it over
            if (!isset($this->info[$merge[$i]])) {
                continue;
            }
            foreach ($this->info[$merge[$i]] as $key => $value) {
                if (isset($attr[$key])) {
                    continue;
                } // also catches more inclusions
                $attr[$key] = $value;
            }
            if (isset($this->info[$merge[$i]][0])) {
                // recursion
                $merge = array_merge($merge, $this->info[$merge[$i]][0]);
            }
        }
        unset($attr[0]);
    }
public function performInclusions(&$attr)
    {
        if (!isset($attr[0])) {
            return;
        }
        $merge = $attr[0];
        $seen  = array(); // recursion guard
        // loop through all the inclusions
        for ($i = 0; isset($merge[$i]); $i++) {
            if (isset($seen[$merge[$i]])) {
                continue;
            }
            $seen[$merge[$i]] = true;
            // foreach attribute of the inclusion, copy it over
            if (!isset($this->info[$merge[$i]])) {
                continue;
            }
            foreach ($this->info[$merge[$i]] as $key => $value) {
                if (isset($attr[$key])) {
                    continue;
                } // also catches more inclusions
                $attr[$key] = $value;
            }
            if (isset($this->info[$merge[$i]][0])) {
                // recursion
                $merge = array_merge($merge, $this->info[$merge[$i]][0]);
            }
        }
        unset($attr[0]);
    }
public function performInclusions ( & $ attr ) { if ( ! isset ( $ attr [ 0 ] ) ) { return ; } $ merge = $ attr [ 0 ] ; $ seen = array ( ) ; // recursion guard
 // loop through all the inclusions
 for ( $ i = 0 ; isset ( $ merge [ $ i ] ) ; $ i ++ ) { if ( isset ( $ seen [ $ merge [ $ i ] ] ) ) { continue ; } $ seen [ $ merge [ $ i ] ] = true ; // foreach attribute of the inclusion, copy it over
 if ( ! isset ( $ this -> info [ $ merge [ $ i ] ] ) ) { continue ; } foreach ( $ this -> info [ $ merge [ $ i ] ] as $ key => $ value ) { if ( isset ( $ attr [ $ key ] ) ) { continue ; } // also catches more inclusions
 $ attr [ $ key ] = $ value ; } if ( isset ( $ this -> info [ $ merge [ $ i ] ] [ 0 ] ) ) { // recursion
 $ merge = array_merge ( $ merge , $ this -> info [ $ merge [ $ i ] ] [ 0 ] ) ; } } unset ( $ attr [ 0 ] ) ; }
Takes a reference to an attribute associative array and performs
all inclusions specified by the zero index.
@param array &$attr Reference to attribute array
Takes a reference to an attribute associative array and performs all inclusions specified by the zero index .