protected function mapTypes($array)
  {
    // Hard initialise simple types, lazy load more complex ones.
    foreach ($array as $key => $val) {
      if ($keyType = $this->keyType($key)) {
        $dataType = $this->dataType($key);
        if ($dataType == 'array' || $dataType == 'map') {
          $this->$key = array();
          foreach ($val as $itemKey => $itemVal) {
            if ($itemVal instanceof $keyType) {
              $this->{$key}[$itemKey] = $itemVal;
            } else {
              $this->{$key}[$itemKey] = new $keyType($itemVal);
            }
          }
        } elseif ($val instanceof $keyType) {
          $this->$key = $val;
        } else {
          $this->$key = new $keyType($val);
        }
        unset($array[$key]);
      } elseif (property_exists($this, $key)) {
          $this->$key = $val;
          unset($array[$key]);
      } elseif (property_exists($this, $camelKey = $this->camelCase($key))) {
          // This checks if property exists as camelCase, leaving it in array as snake_case
          // in case of backwards compatibility issues.
          $this->$camelKey = $val;
      }
    }
    $this->modelData = $array;
  }
protected function mapTypes($array)
  {
    // Hard initialise simple types, lazy load more complex ones.
    foreach ($array as $key => $val) {
      if ($keyType = $this->keyType($key)) {
        $dataType = $this->dataType($key);
        if ($dataType == 'array' || $dataType == 'map') {
          $this->$key = array();
          foreach ($val as $itemKey => $itemVal) {
            if ($itemVal instanceof $keyType) {
              $this->{$key}[$itemKey] = $itemVal;
            } else {
              $this->{$key}[$itemKey] = new $keyType($itemVal);
            }
          }
        } elseif ($val instanceof $keyType) {
          $this->$key = $val;
        } else {
          $this->$key = new $keyType($val);
        }
        unset($array[$key]);
      } elseif (property_exists($this, $key)) {
          $this->$key = $val;
          unset($array[$key]);
      } elseif (property_exists($this, $camelKey = $this->camelCase($key))) {
          // This checks if property exists as camelCase, leaving it in array as snake_case
          // in case of backwards compatibility issues.
          $this->$camelKey = $val;
      }
    }
    $this->modelData = $array;
  }
protected function mapTypes ( $ array ) { // Hard initialise simple types, lazy load more complex ones. foreach ( $ array as $ key => $ val ) { if ( $ keyType = $ this -> keyType ( $ key ) ) { $ dataType = $ this -> dataType ( $ key ) ; if ( $ dataType == 'array' || $ dataType == 'map' ) { $ this -> $ key = array ( ) ; foreach ( $ val as $ itemKey => $ itemVal ) { if ( $ itemVal instanceof $ keyType ) { $ this -> { $ key } [ $ itemKey ] = $ itemVal ; } else { $ this -> { $ key } [ $ itemKey ] = new $ keyType ( $ itemVal ) ; } } } elseif ( $ val instanceof $ keyType ) { $ this -> $ key = $ val ; } else { $ this -> $ key = new $ keyType ( $ val ) ; } unset ( $ array [ $ key ] ) ; } elseif ( property_exists ( $ this , $ key ) ) { $ this -> $ key = $ val ; unset ( $ array [ $ key ] ) ; } elseif ( property_exists ( $ this , $ camelKey = $ this -> camelCase ( $ key ) ) ) { // This checks if property exists as camelCase, leaving it in array as snake_case // in case of backwards compatibility issues. $ this -> $ camelKey = $ val ; } } $ this -> modelData = $ array ; }
Initialize this object's properties from an array.

@param array $array Used to seed this object's properties.
@return void
Initialize this object s properties from an array .