Methode zum Kapseln von Zahlen in maximal 6 bis 8 Zeichen
P粉315680565
P粉315680565 2023-08-10 10:36:59
0
2
588
<p><br /></p> <pre class="brush:php;toolbar:false;">öffentliche statische Funktion genericReceiptNumber(int $id) { $receipt_number = sprintf('%06d', $id % 100000000); return $receipt_number; }</pre> <p>Ich verwende den obigen Code, um die eingehende $id in eine mindestens 6-stellige, maximal 8-stellige Zahl umzuwandeln. Zum Beispiel: 000001 - 99999999</p> <p>Aber es gibt einen Fehler in diesem Code. Wenn $id gleich 100000000 ist, wird 000000 zurückgegeben. Wie sollte ich den obigen Code verbessern, um 000001 zurückzugeben? </p> <p>Analog dazu ist $id die automatisch inkrementierte ID der Datenbank. </p> <p>Der Grund, warum ich dies erreichen möchte, ist, dass ich ein Anzeigetextfeld mit einer Textbeschränkung von nur 8 Ziffern habe und ich die Zahlen nur von 000001 an hochzählen und immer wieder wiederholen kann. </p>
P粉315680565
P粉315680565

Antworte allen(2)
P粉403804844




public static function generateReceiptNumber(int $id)
{
    // 处理特殊情况,当$id为100000000时     if ($id === 100000000) {
        return '000001';
    }

    // 使用取模运算将ID限制在范围0到99,999,99     $limited_id = $id % 100000000;
    
    // 格式化限制的ID,使用前导零确保至少6位     $receipt_number = sprintf('%06d', $limited_id);
    
    return $receipt_number;
}


请查看这个答案是否能帮助

P粉863295057

这怎么样:

function generateReceiptNumber(int $id)
{
    while($id>=100000000)
        $id -= 100000000 - 1;
    return sprintf('%06d', $id);
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage