2012-12-19 21 views
6

Ho notato che le funzioni interne di PHP non usano mai stringhe per valori predefiniti o limitati, solo costanti.Perché le funzioni incorporate di PHP utilizzano le costanti anziché solo le stringhe come parametri?

For example:

pad_type:

opzionale pad_type argomento può essere STR_PAD_RIGHT, STR_PAD_LEFT o STR_PAD_BOTH. Se pad_type non è specificato, si presume che sia STR_PAD_RIGHT.

Qual è il motivo per cui non si utilizza una stringa come parametro qui?

str_pad($test, 10, 0, 'left') sembra molto più semplice di str_pad($test, 10, 0, STR_PAD_LEFT)

(Questo è più di una meta domanda. Spero che sia OK chiedere qui.)

+0

c'è un vantaggio molto grande quando si utilizza un IDE con intellisense. – Ibu

risposta

5

E 'più facile commettere errori quando si digita una stringa. L'uso di una costante indefinita genera un avvertimento. Non è solo una cosa di PHP. Le normali funzioni API (ad esempio un sistema operativo) di solito usano costanti numeriche anche per parametri come questo.

+0

Aggiungere anche: per la manutenibilità della funzione. Dite che le viscere di una funzione cambiano, quindi molto probabilmente sarà anche il valore (i) del parametro e i tipi. Definire con una costante anziché una stringa arbitraria ha molto più senso. – FredTheWebGuy

1

Essi usano int .. e più efficiente in questo modo a causa di maiuscole e minuscole, errori di ortografia, corde l'analisi, meglio per IDE, errore, ecc

Se non ti piace costante si può semplicemente utilizzare il valore int

str_pad($test, 10, 0, 0) == str_pad($test, 10, 0, STR_PAD_LEFT) 
1

noti che il tipo di $pad_type nei parametri è effettivamente int. Il passaggio di ints è molto più veloce del passare (quindi confrontare) le stringhe. Quindi, invece di passare un numero nella funzione per dirgli cosa fare, tu passi la costante corrispondente, rendendo più chiaro il tuo codice. E se gli sviluppatori PHP vogliono mai cambiarlo per passare stringhe invece di int, possono farlo senza infrangere il tuo codice, a patto che tu abbia usato le costanti.

Problemi correlati