1

私は期待以上にPHPの「初心者」なので、たとえば次の関数を逆にすることは可能ですか:

public function baseID($resourceid){
    $rid = $resourceid;
    $version = 0;

    while ($rid > 16777216){
        $version++;
        if ($version == 1){
            //the constant applied to all items
            $rid -= 1342177280;
        }elseif ($version == 2){
            //the value added to the first updated version
            $rid -= 50331648;
        }else{
            //the value added on all subsequent versions
            $rid -= 16777216;
        }
    }

    //$returnable = array('baseID'=>$rid,'version'=>$version);
    return $rid;
}

現在の方法ではなく、「baseID」を入力して「resourceID」を返すことはできますか?

このような質問をする場所が間違っていたら申し訳ありません

4

2 に答える 2

-2

この関数は限られた範囲でしか機能しませんが、ある時点でリソース ID が同じ結果を返し始めます。

public function resourceID($baseid){
    $bid = $baseid;
    $version = 0;

    while ($bid <= 16777216){
        ++$version;

        if ($version === 1){
            $bid += 1342177280;
        } elseif ($version === 2){
            $bid += 50331648;
        } else {
            $bid += 16777216;
        }
    }

    return $bid;
}
于 2013-03-12T06:39:55.757 に答える