Gli operatori di confronto < <= > >=
possono essere applicati anche per le stringhe. Quindi, perché abbiamo bisogno di una funzione speciale per il confronto delle stringhe: strcmp
?PHP: Perché abbiamo bisogno della funzione di confronto delle stringhe?
risposta
Poiché esistono diverse varianti:
A seconda della funzione, la risposta a queste domande variano:
- È case sensitive? (vs
strcasecmp
,strnatcmp
vsstrnatcasecmp
) - Dipende dal locale? (
strcoll
fa) - Posso specificare una collazione? (
strcoll
è affetto dasetlocale
)
Additionaly, gli operatori di confronto anche dare true
o false
. strcmp
restituisce un numero intero in modo che possa codificare simultaneamente se c'è identità (return 0) o, in caso contrario, qual è più grande (a seconda che il valore sia positivo o negativo).
C'è una differenza per '===' però? –
Se entrambi gli operandi sono stringhe e nel caso specifico di 'strcmp', non penso ci sia una differenza, no. – Artefacto
@Peka Sì, entrambi fanno affidamento su memcmp. C'è solo la differenza che uno restituisce vero/falso, l'altro qualsiasi intero. – Artefacto
Sebbene non vi siano sovraccarichi in PHP per strcmp, strcmp risultati in 3 differenti valori -1 per meno, 0 per pari e +1 per maggiore della stringa rispetto. Con < = <= > >=
avrai (qualche volta) per fare più assegni uno dopo l'altro.
Non restituisce solo -1, 1 e 0. – Artefacto
E a meno che non si implementi una sorta di tabella di ricerca, si otterranno anche due confronti nel caso peggiore. – Artefacto
Erm, 'strcmp' è usato più o meno allo stesso modo, tranne che si prende l'operatore di confronto e lo si applica a' 0'. Quindi '$ a <$ b' diventa' strcmp ($ a, $ b) <0' - lo stesso vale per '==', '<=', '>' e '> ='. – Joey
- 1. Perché abbiamo bisogno fibre
- 2. Perché abbiamo bisogno della tabella virtuale?
- 3. Perché abbiamo bisogno di WCF
- 4. Perché abbiamo bisogno di Control.Lens.Reified?
- 5. perché abbiamo bisogno di np.squeeze()?
- 6. Perché abbiamo bisogno di una funzione di confronto a tempo costante * a byte singolo *?
- 7. Perché abbiamo bisogno di questo speciale operatore ===?
- 8. Perché abbiamo bisogno di funcall in Lisp?
- 9. Perché abbiamo bisogno di Anaconda quando abbiamo pip?
- 10. perché abbiamo bisogno di zone_highmem su x86?
- 11. Perché abbiamo bisogno di scalaz.stream su iteratee?
- 12. Perché abbiamo bisogno di endianness qui?
- 13. Perché abbiamo bisogno di altre lingue JVM
- 14. Confronto delle stringhe MySQL
- 15. Perché il confronto delle stringhe non funziona?
- 16. Perché abbiamo bisogno di JWT quando abbiamo sessioni client?
- 17. Confronto di stringhe PHP usando '=='
- 18. perché abbiamo bisogno di Hadoop per Hypertable
- 19. Perché abbiamo bisogno di typename qui?
- 20. Perché abbiamo bisogno di costruttori statici?
- 21. Perché abbiamo bisogno di un tag fieldset?
- 22. perché abbiamo bisogno di ClassMethods e InstanceMethods?
- 23. Perché abbiamo bisogno di ng-clic?
- 24. Perché abbiamo bisogno della clausola GLOB in SQLite?
- 25. Perché ho bisogno della funzione isset() in php?
- 26. Perché abbiamo bisogno della clausola "finally" in Python?
- 27. Perché abbiamo bisogno, quali vantaggi usare mangusta
- 28. Marshalling: cos'è e perché ne abbiamo bisogno?
- 29. Abbiamo bisogno di chiudere file_get_contents?
- 30. Abbiamo veramente bisogno di "oauth_nonce"?
Avrei immaginato che si possa fornire un proprio comparatore o locale a quella funzione ... ma no, è solo la semplice vecchia funzione di libreria C, anche se in modalità binaria. Quindi forse per facilitare il porting del codice C in PHP ... dal momento che sembra che accada tutto il tempo. – Joey