2010-10-14 14 views

risposta

0

ord

Edit: Ops, che non è quello che getNumericValue fa. Immagino che la risposta non sia poi. Dovrai creare un tuo tavolo che mappa caratteri numerici in numeri.

Se si desidera una funzione che funziona con i caratteri numerici più comuni, si potrebbe fare qualcosa di simile, ma sarebbe fallire per particolari numeri Unicode:

function getNumericValue($ch) { 
    if (ctype_digit($ch)) 
    return ord($ch) - ord('0'); 
    if (ctype_upper($ch)) 
    return ord($ch) - ord('A') + 10; 
    if (ctype_lower($ch)) 
    return ord($ch) - ord('a') + 10; 
    return -1; 
} 
2

utilizzare la funzione intval().

Questo non gestisce lettere o numeri romani allo stesso modo, ma è possibile creare il proprio metodo per farlo in quei casi. Gestirà le cifre standard, però.

 
if (intval("2") === 2) 
    echo("YAY!"); 
+1

"intval' è davvero interessante. Usando la base 36 dovrebbe farlo gestire anche le lettere. – casablanca

+0

È fantastico! –