public function replace($in): void
	{
		$this->_massageBlockInput($in);

		if (empty($in)) {
			return;
		}

		foreach ($in as $k => $v) {
			if ($this->_keyExists($k)) {
				if ($this->{$k} instanceof TypedAbstract) {
					$this->{$k}->replace($v);
				}
				else {
					$this->_setByName($k, $v);
				}
			}
		}

		$this->_checkRelatedProperties();
	}
public function replace($in): void
	{
		$this->_massageBlockInput($in);

		if (empty($in)) {
			return;
		}

		foreach ($in as $k => $v) {
			if ($this->_keyExists($k)) {
				if ($this->{$k} instanceof TypedAbstract) {
					$this->{$k}->replace($v);
				}
				else {
					$this->_setByName($k, $v);
				}
			}
		}

		$this->_checkRelatedProperties();
	}
public function replace ( $ in ) : void { $ this -> _massageBlockInput ( $ in ) ; if ( empty ( $ in ) ) { return ; } foreach ( $ in as $ k => $ v ) { if ( $ this -> _keyExists ( $ k ) ) { if ( $ this -> { $ k } instanceof TypedAbstract ) { $ this -> { $ k } -> replace ( $ v ) ; } else { $ this -> _setByName ( $ k , $ v ) ; } } } $ this -> _checkRelatedProperties ( ) ; }
Deep replace local values with matches from input.

Copies all matching property names while maintaining original types and
doing a deep copy where appropriate.
This method silently ignores extra properties in $input,
leaves unmatched properties in this class untouched, and
skips names starting with an underscore.

Input can be an object, or an indexed or associative array.

@param object|array|string|bool|null $in

@return void
Deep replace local values with matches from input .