Status/Range.php
public static function fromString($str)
    {
        $src = CDataReader::fromString($str);
        $inverted = $src->eat('@');
        $num = $src->eatCSpan(':');
        if (empty($num) || $num == '~') {
            $num = null;
        } else {
            $num = floatval($num);
        }
        if ($src->eat(':')) {
            $max = $src->eatToFullConsumption();
            if (empty($max)) {
                $max = null;
            } else {
                $max = floatval($max);
            }
            $min = $num;
        } else {
            $min = 0;
            $max = $num;
        }

        return new static($min, $max, $inverted);
    }
public static function fromString($str)
    {
        $src = CDataReader::fromString($str);
        $inverted = $src->eat('@');
        $num = $src->eatCSpan(':');
        if (empty($num) || $num == '~') {
            $num = null;
        } else {
            $num = floatval($num);
        }
        if ($src->eat(':')) {
            $max = $src->eatToFullConsumption();
            if (empty($max)) {
                $max = null;
            } else {
                $max = floatval($max);
            }
            $min = $num;
        } else {
            $min = 0;
            $max = $num;
        }

        return new static($min, $max, $inverted);
    }
public static function fromString ( $ str ) { $ src = CDataReader :: fromString ( $ str ) ; $ inverted = $ src -> eat ( '@' ) ; $ num = $ src -> eatCSpan ( ':' ) ; if ( empty ( $ num ) || $ num == '~' ) { $ num = null ; } else { $ num = floatval ( $ num ) ; } if ( $ src -> eat ( ':' ) ) { $ max = $ src -> eatToFullConsumption ( ) ; if ( empty ( $ max ) ) { $ max = null ; } else { $ max = floatval ( $ max ) ; } $ min = $ num ; } else { $ min = 0 ; $ max = $ num ; } return new static ( $ min , $ max , $ inverted ) ; }
@param string $str

@return static
@param string $str