/**
* Modifies a property of the object, creating it if it does not already exist.
*
* @param string $property The name of the property.
* @param mixed $value The value of the property to set.
*
* @return mixed Previous value of the property.
*
* @since 1.7.0
*/
public function set($property, $value = null)
{
$previous = $this->{$property} ?? null;
$this->{$property} = $value;
return $previous;
}