public function testCollectCanBeReused() { $fn = L::collect(); $fn_a = $fn->apply(V::val(1))->apply(V::val(2))->apply(V::val(new Stop())); $fn_b = $fn->apply(V::val(3))->apply(V::val(4))->apply(V::val(new Stop())); $res_a = $fn_a->get(); $res_b = $fn_b->get(); $this->assertEquals($res_a, array(1, 2)); $this->assertEquals($res_b, array(3, 4)); }
/** * Collect values in an array until stop is received. * * See example.php. * * @return IValue */ public static function collect() { return L::collect(); }
public static function number($value, $min, $max, $step, $attributes, $error_int, $error_range, $error_step) { C::guardIsInt($value); C::guardIsInt($min); C::guardIsInt($max); C::guardIsInt($step); $attributes["value"] = "{$value}"; $attributes["min"] = "{$min}"; $attributes["max"] = "{$max}"; $attributes["step"] = "{$step}"; return self::input("number", $attributes)->satisfies(V::fn("is_numeric", 1), $error_int)->map(V::fn("intval", 1))->satisfies(L::inRange($min, $max), $error_range)->satisfies(L::isMultipleOf($step), $error_step); }