/** * Wrap return * * This method wraps (or unwraps) the value passed according to all the * <var>$wrapReturn</var> settings. * * @param mixed $value * @param mixed $default * * @return mixed */ public static function wrapReturn($value, $default = null) { if ($value instanceof AeType) { $value = $value->getValue() === null ? $default : $value; } else { $value = $value === null ? $default : $value; } if (self::of($value) != 'object') { // *** Wrap, if enabled if (self::$wrapReturn === true && !$value instanceof AeType) { return self::wrap($value); } // *** Detect further down the class tree if (self::$wrapReturn === null) { if (is_scalar($value) || $value instanceof AeScalar) { return AeScalar::_wrapReturn($value); } if (is_array($value) || $value instanceof AeArray) { return AeArray::_wrapReturn($value); } } // *** Unwrap if disabled if (self::$wrapReturn === false && $value instanceof AeType) { return $value->getValue(); } } return $value; }