Pinq\Analysis\PhpTypeSystem::mathOperators PHP Метод

mathOperators() защищенный Метод

protected mathOperators ( $operator, $otherIntReturnType = INativeType::TYPE_INT )
    protected function mathOperators($operator, $otherIntReturnType = INativeType::TYPE_INT)
    {
        //TODO: remove duplicate operators with types on opposite sides (binary operators are symmetrical)
        $operators = [];
        foreach ([INativeType::TYPE_INT, INativeType::TYPE_DOUBLE, INativeType::TYPE_NUMERIC, INativeType::TYPE_STRING, INativeType::TYPE_RESOURCE, INativeType::TYPE_BOOL, INativeType::TYPE_NULL] as $type) {
            $operators = array_merge($operators, [[$type, $operator, INativeType::TYPE_NULL, 'return' => $otherIntReturnType], [$type, $operator, INativeType::TYPE_BOOL, 'return' => $otherIntReturnType], [$type, $operator, INativeType::TYPE_STRING, 'return' => INativeType::TYPE_NUMERIC], [$type, $operator, INativeType::TYPE_RESOURCE, 'return' => $otherIntReturnType]]);
        }
        $operators[] = [INativeType::TYPE_INT, $operator, INativeType::TYPE_INT, 'return' => $otherIntReturnType];
        $operators[] = [INativeType::TYPE_INT, $operator, INativeType::TYPE_DOUBLE, 'return' => INativeType::TYPE_DOUBLE];
        $operators[] = [INativeType::TYPE_DOUBLE, $operator, INativeType::TYPE_DOUBLE, 'return' => INativeType::TYPE_DOUBLE];
        return $operators;
    }