Grido\DataSources\ArraySource::compare PHP Метод

compare() публичный Метод

public compare ( string $actual, string $condition, mixed $expected ) : boolean
$actual string
$condition string
$expected mixed
Результат boolean
    public function compare($actual, $condition, $expected)
    {
        $expected = (array) $expected;
        $expected = current($expected);
        $cond = str_replace(' ?', '', $condition);
        if ($cond === 'LIKE') {
            $actual = Strings::toAscii($actual);
            $expected = Strings::toAscii($expected);
            $pattern = str_replace('%', '(.|\\s)*', preg_quote($expected, '/'));
            return (bool) preg_match("/^{$pattern}\$/i", $actual);
        } elseif ($cond === '=') {
            return $actual == $expected;
        } elseif ($cond === '<>') {
            return $actual != $expected;
        } elseif ($cond === 'IS NULL') {
            return $actual === NULL;
        } elseif ($cond === 'IS NOT NULL') {
            return $actual !== NULL;
        } elseif ($cond === '<') {
            return (int) $actual < $expected;
        } elseif ($cond === '<=') {
            return (int) $actual <= $expected;
        } elseif ($cond === '>') {
            return (int) $actual > $expected;
        } elseif ($cond === '>=') {
            return (int) $actual >= $expected;
        } else {
            throw new Exception("Condition '{$condition}' is not implemented yet.");
        }
    }