public function NumberComparator::__construct in Database Sanitize 7
Parameters
string|int $test A comparison string or an integer:
Throws
\InvalidArgumentException If the test is not understood
File
- vendor/
symfony/ finder/ Comparator/ NumberComparator.php, line 42
Class
- NumberComparator
- NumberComparator compiles a simple comparison to an anonymous subroutine, which you can call with a value to be tested again.
Namespace
Symfony\Component\Finder\ComparatorCode
public function __construct($test) {
if (!preg_match('#^\\s*(==|!=|[<>]=?)?\\s*([0-9\\.]+)\\s*([kmg]i?)?\\s*$#i', $test, $matches)) {
throw new \InvalidArgumentException(sprintf('Don\'t understand "%s" as a number test.', $test));
}
$target = $matches[2];
if (!is_numeric($target)) {
throw new \InvalidArgumentException(sprintf('Invalid number "%s".', $target));
}
if (isset($matches[3])) {
// magnitude
switch (strtolower($matches[3])) {
case 'k':
$target *= 1000;
break;
case 'ki':
$target *= 1024;
break;
case 'm':
$target *= 1000000;
break;
case 'mi':
$target *= 1024 * 1024;
break;
case 'g':
$target *= 1000000000;
break;
case 'gi':
$target *= 1024 * 1024 * 1024;
break;
}
}
$this
->setTarget($target);
$this
->setOperator(isset($matches[1]) ? $matches[1] : '==');
}