2012-09-20 18 views
12

In altri linguaggi di programmazione la definizione di array è qualcosa che può contenere un tipo di elementi simile. Ad esempio, se dichiaro qualcosa come int i[] memorizzerà interi, ma in PHP una singola matrice sembra contenere stringhe e numeri insieme.Gli array PHP possono contenere elementi di diverso tipo?

Il numero/intero sarà trattato come stringa in tale tipo di array in PHP?

+0

correlati http://technosophos.com/content/php-arrays-are-not-arrays –

+1

Perché non ci provi e facci sapere? :) (inoltre, sembra più una domanda SO che una domanda P.SE) – haylem

risposta

9

According to the PHP manual si può infatti memorizzare tipi eterogenei all'interno di un "allineamento" PHP - scorrere verso il basso per esempio 3.

Nota che, anche se l'esempio è sui tasti essere interi o stringhe, i valori assegnati nell'esempio sono anche sia int che stringhe, dimostrando che è possibile memorizzare tipi eterogenei.

Si noti che in caso di tasti con tipi diversi è necessario il casting automatico, pertanto è possibile che si ottengano risultati sorprendenti nel caso in cui, ad es. una stringa contiene una rappresentazione decimale valida.

+1

Sei corretto, ma la domanda riguardava la memorizzazione di diversi tipi di valori, non di chiavi. Non sono sicuro del motivo per cui questo è stato downvoted però. – phant0m

+0

@ phant0m - In realtà ho perso completamente il titolo dell'esempio, stavo guardando il lato destro di quell'esempio. Risposta chiarita, grazie. –

2

In PHP gli array non sono nemmeno array, vengono ordinati hash-tables.

+0

Le tabelle hash ben ordinate sono array associativi, quindi array _are_ di PHP. Non so quale definizione di array hai in mente, ma la limitazione che gli array possono contenere solo oggetti dello stesso tipo è una limitazione del linguaggio, non concettuale. – yannis

+3

@YannisRizos Ti suggerisco di leggere questo post per capire perché le persone non considerano gli array di php come array reali http://technosophos.com/content/php-arrays-are-not-arrays Non si tratta solo del tipo, è anche circa l'ordine (inesistente in PHP) –

+0

Non è un array una struttura dati, dove tutti i valori sono della stessa dimensione e ordinati uno dopo l'altro in memoria? Quello che stai riferendo suona come un dizionario/mappa per me. L'unica cosa che so, che gli array associativi hanno in comune con i veri array è una parte del nome. –

0

È possibile memorizzare tutto ciò che si desidera in un array.

Il numero/intero sarà trattato come stringa in tale tipo di matrice in PHP?

Non memorizzarlo. Tuttavia, quando si utilizza un valore tale, PHP lo convertirà in. L'utilizzo di un valore determina la sua interpretazione. (Attenzione, la chiave viene convertito su di archiviazione, tuttavia, se si considera numerica)

1

Non andare a mettere l'olio sul fuoco degli array PHP sono array qui ... Ma sì, si può mettere diversi tipi di variabili (string, int, ...) insieme in una cosa chiamata PHP Array.

Problemi correlati