protected function sphPackU64($v)
    {
        assert(is_numeric($v));

        // x64
        if (PHP_INT_SIZE >= 8) {
            assert($v >= 0);

            // x64, int
            if (is_int($v)) {
                return pack('NN', $v >> 32, $v & 0xFFFFFFFF);
            }

            // x64, bcmath
            if (function_exists('bcmul')) {
                $h = bcdiv($v, 4294967296, 0);
                $l = bcmod($v, 4294967296);

                return pack('NN', $h, $l);
            }

            // x64, no-bcmath
            $p = max(0, strlen($v) - 13);
            $lo = (int) substr($v, $p);
            $hi = (int) substr($v, 0, $p);

            $m = $lo + $hi * 1316134912;
            $l = $m % 4294967296;
            $h = $hi * 2328 + (int) ($m / 4294967296);

            return pack('NN', $h, $l);
        }

        // x32, int
        if (is_int($v)) {
            return pack('NN', 0, $v);
        }

        // x32, bcmath
        if (function_exists('bcmul')) {
            $h = bcdiv($v, '4294967296', 0);
            $l = bcmod($v, '4294967296');

            return pack('NN', (float) $h, (float) $l); // conversion to float is intentional; int would lose 31st bit
        }

        // x32, no-bcmath
        $p = max(0, strlen($v) - 13);
        $lo = (float) substr($v, $p);
        $hi = (float) substr($v, 0, $p);

        $m = $lo + $hi * 1316134912.0;
        $q = floor($m / 4294967296.0);
        $l = $m - ($q * 4294967296.0);
        $h = $hi * 2328.0 + $q;

        return pack('NN', $h, $l);
    }
protected function sphPackU64($v)
    {
        assert(is_numeric($v));

        // x64
        if (PHP_INT_SIZE >= 8) {
            assert($v >= 0);

            // x64, int
            if (is_int($v)) {
                return pack('NN', $v >> 32, $v & 0xFFFFFFFF);
            }

            // x64, bcmath
            if (function_exists('bcmul')) {
                $h = bcdiv($v, 4294967296, 0);
                $l = bcmod($v, 4294967296);

                return pack('NN', $h, $l);
            }

            // x64, no-bcmath
            $p = max(0, strlen($v) - 13);
            $lo = (int) substr($v, $p);
            $hi = (int) substr($v, 0, $p);

            $m = $lo + $hi * 1316134912;
            $l = $m % 4294967296;
            $h = $hi * 2328 + (int) ($m / 4294967296);

            return pack('NN', $h, $l);
        }

        // x32, int
        if (is_int($v)) {
            return pack('NN', 0, $v);
        }

        // x32, bcmath
        if (function_exists('bcmul')) {
            $h = bcdiv($v, '4294967296', 0);
            $l = bcmod($v, '4294967296');

            return pack('NN', (float) $h, (float) $l); // conversion to float is intentional; int would lose 31st bit
        }

        // x32, no-bcmath
        $p = max(0, strlen($v) - 13);
        $lo = (float) substr($v, $p);
        $hi = (float) substr($v, 0, $p);

        $m = $lo + $hi * 1316134912.0;
        $q = floor($m / 4294967296.0);
        $l = $m - ($q * 4294967296.0);
        $h = $hi * 2328.0 + $q;

        return pack('NN', $h, $l);
    }
protected function sphPackU64 ( $ v ) { assert ( is_numeric ( $ v ) ) ; // x64 if ( PHP_INT_SIZE >= 8 ) { assert ( $ v >= 0 ) ; // x64, int if ( is_int ( $ v ) ) { return pack ( 'NN' , $ v >> 32 , $ v & 0xFFFFFFFF ) ; } // x64, bcmath if ( function_exists ( 'bcmul' ) ) { $ h = bcdiv ( $ v , 4294967296 , 0 ) ; $ l = bcmod ( $ v , 4294967296 ) ; return pack ( 'NN' , $ h , $ l ) ; } // x64, no-bcmath $ p = max ( 0 , strlen ( $ v ) - 13 ) ; $ lo = ( int ) substr ( $ v , $ p ) ; $ hi = ( int ) substr ( $ v , 0 , $ p ) ; $ m = $ lo + $ hi * 1316134912 ; $ l = $ m % 4294967296 ; $ h = $ hi * 2328 + ( int ) ( $ m / 4294967296 ) ; return pack ( 'NN' , $ h , $ l ) ; } // x32, int if ( is_int ( $ v ) ) { return pack ( 'NN' , 0 , $ v ) ; } // x32, bcmath if ( function_exists ( 'bcmul' ) ) { $ h = bcdiv ( $ v , '4294967296' , 0 ) ; $ l = bcmod ( $ v , '4294967296' ) ; return pack ( 'NN' , ( float ) $ h , ( float ) $ l ) ; // conversion to float is intentional; int would lose 31st bit } // x32, no-bcmath $ p = max ( 0 , strlen ( $ v ) - 13 ) ; $ lo = ( float ) substr ( $ v , $ p ) ; $ hi = ( float ) substr ( $ v , 0 , $ p ) ; $ m = $ lo + $ hi * 1316134912.0 ; $ q = floor ( $ m / 4294967296.0 ) ; $ l = $ m - ( $ q * 4294967296.0 ) ; $ h = $ hi * 2328.0 + $ q ; return pack ( 'NN' , $ h , $ l ) ; }
Packs 64-bit unsigned.

@param $v

@return string
Packs 64 - bit unsigned .