2010-03-27 7 views

risposta

32

Non c'è altra funzione di stringa che fa lo stesso . Funzioni come explode restituiscono la stringa di divisione completa in una matrice. strtok d'altra parte restituisce solo un pezzo alla volta, con ogni chiamata successiva che restituisce il pezzo successivo. Questo è potenzialmente molto più economico e preservativo della memoria per grandi stringhe.

6
$addr=strtok($_SERVER['REQUEST_URI'],'?'); 

ma non chiamarlo "migliore". è solo un altro modo per farlo.

7

strtok è preferito per altre funzioni quando è necessario dividere una stringa su più di un delimitatore.

L'altra funzione che questo come preg_split, split è basata su espressioni regolari e ad essa è associato un sovraccarico.

0

strtok() è un grande e molto utile funzione ma:

  • Questa funzione può restituire booleana FALSE, ma può anche restituire un valore non-Booleano valutato FALSE. (PHP Manual)

  • Se si vuole tokenize da una sola lettera, explode() è molto più veloce rispetto a strtok(). (Source)

  • Se si dispone di memoria-utilizzo soluzione critica, si dovrebbe tenere a mente, che la funzione strtok tiene parametro di stringa di input (o riferimento ad esso?) In memoria dopo l'uso. (Source)