Per coloro che stanno appena iniziando questa serie, si noti che stiamo dando un'occhiata alla programmazione orientata agli oggetti usando PHP nel contesto di WordPress.
Lo stiamo facendo dal punto di vista del molto principiante, quindi se sei uno sviluppatore esperto o hai familiarità con molti aspetti della programmazione orientata agli oggetti, allora questa serie probabilmente non fa per te.
Detto questo, se tu siamo interessati a imparare la programmazione orientata agli oggetti in PHP e ti consideri un principiante, quindi continueremo la serie in questo articolo parlando di alcuni dei tipi di dati che PHP offre.
Ma prima, assicurati di aver raggiunto gli articoli precedenti della serie mentre ciascuno si costruisce uno sull'altro:
Una volta che vieni raggiunto, possiamo iniziare a parlare di tipi.
Abbiamo terminato l'ultimo articolo con il seguente:
Ci arriveremo, ma prima dobbiamo discutere alcuni aspetti più primitivi della programmazione come stringhe, matrici, loop e condizionali.
Ora, stringhe, array e così via sono quelli che consideriamo tipi. Loops e conditionals sono le cosiddette strutture di controllo che tratteremo nel prossimo articolo.
Quindi, nel frattempo, facciamo un termine semplice per ciò che rappresenta un tipo di dati in modo che sappiamo come modellarli concettualmente in avanti non solo con questo articolo, ma con il resto del contenuto della serie.
Per chiunque abbia scritto qualunque codice che include variabili, quindi probabilmente ti è sembrato qualcosa di simile al seguente:
$ name = 'Tuts + WordPress';
$ is_active = true;
$ età = 42;
Nella forma più semplice, probabilmente ascolterai il codice sopra definito come variabili con definizioni, e questo è corretto, ma è una definizione molto generalizzata.
Vedete, ogni volta che definite una variabile in PHP, voi così anteponendo la variabile a $
. Ciò consente a PHP di sapere che stai definendo una variabile e che rappresenterà un valore tipico.
Abbastanza facile, giusto?
Il fatto è che ci sono diversi tipi in PHP. Per coloro che provengono da quelle che sono conosciute come "lingue fortemente tipizzate", ne parleremo più a breve, ma sappiamo che PHP offre i seguenti tipi di dati:
Tutto, dai booleani alle stringhe, può essere pensato come un semplice tipo di dati dove come matrici e oggetti possono essere considerati tipi di dati più complessi.
I tipi di dati semplici sono definiti come tali perché i dati che rappresentano sono, lo sai, semplice. Vale a dire che normalmente cadrà sotto la bandiera di vero, falso, decimali, e parole e / o frasi.
Per dare esempi concreti di ciascuno dei precedenti:
vero
o falso
.-12
, -2
, 1
, 100
, 5000
, e così via. 3,1459
, 2.5
, 100.25
, e così via. Se dovessi provare a salvare il valore di, per esempio, 3/4
allora in realtà salvi .75
salvo che l'hai salvato come una stringa. Cioè, dovevi salvare '3/4'
. Si noti la sottile delineazione tra i due? Uno ha citazioni e l'altro no.'frasi come queste'
o un singolo 'parola'
o anche qualcosa di più complesso come 'E952098vjdkw94kd'
. Ecco il trucco, tuttavia: qualsiasi tipo di dati sopra può essere convertito in stringhe racchiudendole tra virgolette.
Ad esempio, se dovessi lavorare con il valore booleano di, diciamo, true, ma dovresti memorizzarlo in una variabile come questa: $ is_active = 'true';
allora hai appena creato una stringa che legge vero
.
Allo stesso modo, se dovessi scrivere una stringa che legge $ età = '42';
allora hai creato una stringa contenente il numero 42
, non un numero intero.
Ha senso?
La ragione per cui questo è importante perché quando arriva il momento di lavorare con le strutture di controllo, che rivedremo nel prossimo articolo, è che a volte il paragone può avere conseguenze indesiderate se non sei sicuro quale tipo di dati con cui stai lavorando.
Oltre ai semplici tipi di dati, abbiamo anche tipi di dati complessi che, a mio parere, non sono realmente quello complicato. In effetti, lo considero un modo elegante per dire che abbiamo modi di memorizzazione più informazioni in una singola variabile; mentre, con tipi semplici, abbiamo un modo per memorizzare singole informazioni in una singola variabile.
Abbastanza facile da ricordare, giusto? Quindi quali sono alcuni dei tipi di dati più complessi?
I due principali tipi di dati complessi su cui ci concentreremo in questa serie come matrici e oggetti. Ce ne sono altri, ma sono al di fuori dell'ambito di questa serie, quindi se sei interessato, allora sentiti libero di dare un'occhiata al manuale PHP, ma ti avverto: se sei un principiante assoluto, il contenuto potrebbe sembrare un po 'travolgente.
$ names = ['John', 'Paul', 'Ringo', 'George'];
Si noti qui che abbiamo una serie di stringhe, ma un altro aspetto degli array PHP è che possono contenere più tipi di dati. Ciò significa che puoi avere una matrice che assomiglia $ various_types = [42, TRUE, 'Star Wars', .007];
. Un po 'freddo, giusto?0
, 1
, 2
, 3
, e così via - e gli array associati sono indicizzati con le loro chiavi come 'chitarra ritmica'
, 'drums'
, e così via.Per quanto riguarda gli oggetti, il modo migliore per vedere quanto possono essere complessi è vederli in azione, cosa che faremo sicuramente quando costruiremo un plugin.
Nota che in alcune lingue, la dimensione dell'array deve essere dichiarata prima che tu possa effettivamente usarla. Ad esempio, in C, devi dire al compilatore che la matrice conterrà esattamente, per esempio, 10 valori.
Nel caso di PHP, questo è non il caso. L'array di PHP è dinamico e significa che puoi continuare ad aggiungere dati all'array senza dover aumentare le sue dimensioni. Sì, come con qualsiasi cosa, ci sono dei limiti, ma di solito è correlato alla dimensione dei dati che vengono memorizzati, o alla quantità di memoria che una macchina ha a disposizione.
Ma per il momento, non lasciare che le parole semplice e complesso intimidirti. Certo, "semplice" è relativamente semplice, giusto? Ma "complesso" ha questa connotazione che sarà difficile da capire, e non è vero - speriamo che questo articolo sia dimostrato che.
I tipi di dati complessi possono contenere facilmente più porzioni di dati. I tipi di dati semplici non possono.
Si ci sono. Vale a dire risorse, callback e pseudo-tipi. La maggior parte di questi sono fuori dallo scopo di questa particolare serie; tuttavia, noi potrebbe finiscono per usare i callback (che sono un certo tipo di funzioni) più avanti quando iniziamo a costruire il nostro plugin.
Sentiti libero di leggerli il più possibile, ma sappi che sono oltre lo scopo del contenuto che copriremo attraverso questa particolare serie, quindi se ti senti sopraffatto da loro, forse rivisitali una volta che la serie è completa.
Alcuni linguaggi di programmazione sono conosciuti che sono digitati in modo dinamico (o debolmente tipizzati) mentre altri sono noti come lingue fortemente tipizzate.
Questo è un altro caso in cui la terminologia spesso intimidisce i nuovi programmatori piuttosto che autorizzarli a sapere come utilizzare gli strumenti disponibili, ma il fattore distintivo tra i due è davvero piuttosto semplice:
stringa sMyName
; Quindi, vorrei memorizzare una stringa nella variabile. sMyName = 'Tom McFarlin';
. Ciò significa che il sMyName
lattina variabile solo tenere le corde. Se si tenta di memorizzare un altro tipo di dati in quella variabile, il compilatore genererà un errore.$ my_name = 'Tom McFarlin';
come potrei $ my_name = false
. Se si tenta di memorizzare un altro tipo di dati in quella variabile, allora funziona correttamente. Potete vedere che questo ha sia vantaggi che svantaggi.Prima di tornare al mondo della programmazione orientata agli oggetti, dobbiamo parlare di alcune strutture di base aggiuntive di programmazione come le strutture di controllo.
Questi includono cose come loop, condizionali e così via che possono influenzare il flusso di codice per tutta la durata del programma. Inoltre, lavorano in stretta collaborazione con i tipi di dati che abbiamo delineato qui.
Quindi, prima di passare al prossimo articolo, assicurati di rivedere tutto ciò che sta accadendo qui, di lasciare commenti, domande e feedback nel feed dei commenti.
Ci vediamo nel prossimo articolo!