<?php
class parentUserId {
private $parentId = '';
function __construct($childid) {
// convert given long int into binary it must be 64 bit long
$binary = $this->dec2bin_long($childid);
//trim first 16 char
$binary = substr($binary, 0, 16);
//add '0' in the right side upto string length get 64
$binary = str_pad($binary, 64, 0, STR_PAD_RIGHT);
//Convet new binary into decimal
$this->parentId = $this->bin2dec_long($binary);
}
public function getParentId() {
return $this->parentId;
}
private function dec2bin_long($decimal_i) {
bcscale(0);
$binary_i = '';
do {
$binary_i = bcmod($decimal_i, '2') . $binary_i;
$decimal_i = bcdiv($decimal_i, '2');
} while (bccomp($decimal_i, '0'));
return str_pad($binary_i, 64, 0, STR_PAD_LEFT);
}
private function bin2dec_long($binary_i) {
bcscale(0);
$decimal_i = '0';
for ($i = 0; $i < strlen($binary_i); $i++) {
$decimal_i = bcmul($decimal_i, '2');
$decimal_i = bcadd($decimal_i, $binary_i[$i]);
}
return($decimal_i);
}
}
$obj = new parentUserId("4335559066275177789");
echo $obj->getParentId();
?>