Ciao,

dalla domanda è evidente che non conosci PHP, ma è anche evidente che non conosci il C dato che il C e la sintassi del codice che hai postato non hanno assolutamente nulla da spartire.

Credo sia Visual Basic, anche se sinceramente con quest'ultimo sono abbastanza arrugginito. Comunque, se non è vb, credo sia qualcosa di molto simile e che comunque sia BASIC-like.

Detto questo, la traduzione letterale del codice è
codice:
function char($t)
{
    $n = 0
    for($i = 0; $i < strlen($t); $i++)
    {
        $n = ($n ^ ord($t{$i})) * 2;
        if ($n > 255)
        {
            $n = ($n & 255) + 1
        }
    }
    
    return chr($n);
}
Il codice non sembra far altro che ciclare una stringa per restituire un codice di controllo, calcolato partendo dallo xor * 2 dei caratteri tra loro. Nel caso in cui $n supera 255, i caratteri della tabella ascii vanno da 0 a 255, allora fa un AND con 255 e ci somma 1, ovvero praticamente tiene attivi i primi 8 bit di $n (dato che ha superato 255 alcuni saranno spenti) applicando una maschera booleana e somma 1.

Il codice, cosi per come l'ho riscritto, dubito che mimi al 100% il funzionamento del codice originale, soprattutto perché, se non ricordo male, in visual basic gli indici di posizione nelle stringhe non potevano avere zero.

In ogni caso sarà sicuramente necessario fare qualche correzione e/o affinamento.