Whats L'uso della funzione strtok() in PHP, come è meglio di altre stringhe che fanno la stessa cosa?Whats L'uso della funzione strtok() in PHP, come è meglio di altre funzioni stringa che fanno la stessa cosa?
risposta
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.
$addr=strtok($_SERVER['REQUEST_URI'],'?');
ma non chiamarlo "migliore". è solo un altro modo per farlo.
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.
strtok()
è un grande e molto utile funzione ma:
-
Questa funzione può restituire booleana
FALSE
, ma può anche restituire un valore non-Booleano valutatoFALSE
. (PHP Manual) -
Se si vuole tokenize da una sola lettera,
explode(
) è molto più veloce rispetto astrtok()
. (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)
Si può vedere anche che https://stackoverflow.com/a/24280162/4217744 – simhumileco