Pinq\Expressions\Operators\Binary::doBinaryOperation PHP Метод

doBinaryOperation() публичный статический Метод

Performs the binary operation on the supplied values.
public static doBinaryOperation ( mixed $left, string $operator, mixed $right ) : mixed
$left mixed
$operator string
$right mixed
Результат mixed
    public static function doBinaryOperation($left, $operator, $right)
    {
        if (self::$binaryOperations === null) {
            self::$binaryOperations = [self::BITWISE_AND => function ($l, $r) {
                return $l & $r;
            }, self::BITWISE_OR => function ($l, $r) {
                return $l | $r;
            }, self::BITWISE_XOR => function ($l, $r) {
                return $l ^ $r;
            }, self::SHIFT_LEFT => function ($l, $r) {
                return $l << $r;
            }, self::SHIFT_RIGHT => function ($l, $r) {
                return $l >> $r;
            }, self::LOGICAL_AND => function ($l, $r) {
                return $l && $r;
            }, self::LOGICAL_OR => function ($l, $r) {
                return $l || $r;
            }, self::ADDITION => function ($l, $r) {
                return $l + $r;
            }, self::SUBTRACTION => function ($l, $r) {
                return $l - $r;
            }, self::MULTIPLICATION => function ($l, $r) {
                return $l * $r;
            }, self::DIVISION => function ($l, $r) {
                return $l / $r;
            }, self::MODULUS => function ($l, $r) {
                return $l % $r;
            }, self::POWER => function ($l, $r) {
                return pow($l, $r);
            }, self::CONCATENATION => function ($l, $r) {
                return $l . $r;
            }, self::IS_INSTANCE_OF => function ($l, $r) {
                return $l instanceof $r;
            }, self::EQUALITY => function ($l, $r) {
                return $l == $r;
            }, self::IDENTITY => function ($l, $r) {
                return $l === $r;
            }, self::INEQUALITY => function ($l, $r) {
                return $l != $r;
            }, self::NOT_IDENTICAL => function ($l, $r) {
                return $l !== $r;
            }, self::LESS_THAN => function ($l, $r) {
                return $l < $r;
            }, self::LESS_THAN_OR_EQUAL_TO => function ($l, $r) {
                return $l <= $r;
            }, self::GREATER_THAN => function ($l, $r) {
                return $l > $r;
            }, self::GREATER_THAN_OR_EQUAL_TO => function ($l, $r) {
                return $l >= $r;
            }];
        }
        if (!isset(self::$binaryOperations[$operator])) {
            throw new PinqException('Binary operator \'%s\' is not supported', $operator);
        }
        $operation = self::$binaryOperations[$operator];
        return $operation($left, $right);
    }

Usage Example

Пример #1
0
 /**
  * @expectedException \Pinq\PinqException
  */
 public function testInvalidBinary()
 {
     Binary::doBinaryOperation(null, '#', null);
 }