示例#1
0
 /**
  * Recursive Merging of two Entities, regardless of type
  */
 public function mergeParams($subject, $subject2, $overwrite = true)
 {
     if (is_object($subject)) {
         $properties = get_object_vars($subject2);
         if (!empty($properties)) {
             foreach ($properties as $pname => $pvalue) {
                 if (isset($subject->{$pname}) && $overwrite) {
                     $subject->{$pname} = serialParamDBTable::mergeParams($subject->{$pname}, $pvalue, $overwrite);
                 } else {
                     $subject->{$pname} = $pvalue;
                 }
             }
         }
     } elseif (is_array($subject)) {
         if (!empty($subject2)) {
             foreach ($subject2 as $pname => $pvalue) {
                 if (isset($subject[$pname]) && $overwrite) {
                     $subject[$pname] = serialParamDBTable::mergeParams($subject[$pname], $pvalue, $overwrite);
                 } elseif (!isset($subject[$pname])) {
                     $subject[$pname] = $pvalue;
                 }
             }
         }
     } elseif ($overwrite) {
         $subject = $subject2;
     }
     return $subject;
 }