Per quelli di voi che hanno seguito la serie fino ad ora, allora sapete che stiamo studiando la programmazione orientata agli oggetti in modo specifico dal punto di vista di un principiante.
Ciò significa che ci stiamo avvicinando all'argomento non solo per coloro che stanno cercando come iniziare con il paradigma, ma stiamo esaminando tutte le varie funzionalità di PHP che costituiscono il linguaggio e che vengono infine utilizzate all'interno del contesto della programmazione orientata agli oggetti.
Inoltre, stiamo facendo tutto questo nel contesto di WordPress in modo che, alla fine della serie, possiamo vedere come un'applicazione pratica di come tutto questo può essere utilizzato all'interno di un esempio reale.
Se è la prima volta che leggi un articolo della serie, consiglio vivamente di dare un'occhiata agli articoli precedenti in quanto ogni articolo di questa serie si basa su quello precedente.
Finora, abbiamo coperto quanto segue:
In questo articolo parleremo delle strutture di controllo.
"Strutture di controllo" è un termine elaborato che descrive come possiamo, ahem, controllare come il codice scorre attraverso il nostro programma in base a una serie di fattori.
Ad esempio, diciamo che vogliamo progredire attraverso un certo insieme di istruzioni, ma tu vuoi farlo qualcosa se è impostata una variabile o è impostata un'altra serie di istruzioni di un'altra variabile.
Oppure diciamo che hai una serie di dati che vuoi scorrere leggendo ogni valore, impostando ogni dato valore o anche creando determinati valori.
Qualunque sia il caso, il modo in cui lo fai è attraverso l'uso di strutture di controllo. Nel resto di questo articolo, copriremo due tipi di strutture di controllo: condizionali e cicli.
Anche se condizionali e cicli sono i tipi di strutture di controllo che stiamo esaminando, ci sono sottoinsiemi di ciascuno.
Ad esempio, i condizionali hanno:
se poi
dichiarazioniscatola dell'interruttore
dichiarazioni
I loop, d'altra parte, hanno alcune altre varianti:
per
per ciascuno
fare
mentre
Sebbene questi possano essere nuovi costrutti per alcuni di voi, abbiamo già trattato le nozioni di base negli articoli precedenti, quindi abbiamo tutto ciò di cui abbiamo bisogno per andare avanti.
A mio avviso, le dichiarazioni condizionali sono tra le più facili da capire in quanto leggono più frasi simili rispetto a molti altri tipi di istruzioni di programmazione. Ad esempio, se stai dicendo letteralmente "se questa condizione è vera, allora fai questa azione, altrimenti, fai questa azione".
Certo, ottiene un poco più complicato di così, se hai, ad esempio, alcune altre condizioni da controllare prima di decidere una linea d'azione, ma il suo senso rimane lo stesso.
Detto questo, iniziamo dando uno sguardo a una delle due varianti di conditionals offerte da PHP.
se poi
dichiarazioniCome accennato in precedenza, la dichiarazione condizionale più basilare è della forma se altro
, e generalmente lo vedrai scritto in questo modo:
Naturalmente, questo non spiega ancora come funzioni la struttura di controllo, vero? Voglio dire, certo, fornisce un po 'di scheletro per come dare un'occhiata a questo, ma lascia più a desiderare.
Vale a dire, cos'è questo condizione linea? In secondo luogo, quali sono le linee d'azione che la struttura di controllo può adottare?
Prima il condizione si riferisce a qualsiasi affermazione che può essere valutata come espressione booleana. Ha senso? In poche parole, condizione rappresenta qualsiasi affermazione che può essere valutata come
vero
ofalso
.Quindi, per esempio, diciamo che abbiamo due valori:
$ is_active
$ TOTAL_COUNT
Questi sono ovviamente valori in qualche modo generici, ma diciamo che se
$ is_active
è impostato su true, quindi incrementeremo il valore$ TOTAL_COUNT
da uno; altrimenti, sottrarremo il$ TOTAL_COUNT
da uno.Ecco come può apparire nel codice:
Nell'esempio sopra,
$ TOTAL_COUNT
sarà aumentato di uno perché$ is_active
valuta vero.In alternativa, diciamo
$ is_active
è impostato perfalso
.Nel Questo esempio,
$ TOTAL_COUNT
sarà diminuito di uno perché$ is_active
valuta come falso.Ora, prima di guardare al prossimo esempio, è importante capire che questi sono esempi estremamente banali. Lo scopo di questi esempi non è mostrare come eseguire operazioni complesse e combinarle nei costrutti condizionali, ma come uso i costrutti condizionali.
Quando arriviamo alla parte della serie che ci fa iniziare a scrivere un plugin, vedremo come possiamo usare espressioni più elaborate all'interno di un'applicazione pratica.
Detto questo, diamo un'occhiata a un altro esempio di dichiarazioni if / then. In questo esempio, daremo un'occhiata a
if / elseif / else
. Per iniziare, supponiamo che$ is_active
è impostato su true e$ TOTAL_COUNT
è impostato su 10.= 10) $ total_count = $ total_count + 1 else $ total_count = $ total_count - 1;Il codice sopra può essere letto in questo modo:
$ is_active
è impostato su true, quindi imposta il $ TOTAL_COUNT
a uno. $ is_active
non è vero.$ TOTAL_COUNT
è maggiore o uguale a 10, quindi incrementa il valore $ TOTAL_COUNT
da 1. Il $ TOTAL_COUNT
è uguale a 10, quindi incrementeremo il valore $ TOTAL_COUNT
a 11.$ TOTAL_COUNT
non era maggiore o uguale a 10, quindi avremmo decrementato il $ TOTAL_COUNT
da uno.Nel momento in cui il blocco di codice termina l'esecuzione nell'esempio precedente, $ TOTAL_COUNT
sarà uguale a 11.
Ha senso?
Questo è il motivo per cui chiamiamo queste strutture di controllo: queste dichiarazioni (o valutazioni) ci consentono di determinare quale codice eseguire in base a determinate condizioni.
Per coloro che hanno programmato per un po ', hai familiarità con espressioni più complesse usando operatori come &&
e ||
e così via. Alla fine ci arriveremo, ma non in questo articolo.
Tutto ciò che dico, è un argomento di cui sono a conoscenza e che tratteremo, ma non oggi.
Per quelli di voi che hanno maggiore esperienza con la programmazione, probabilmente avrete familiarità con l'operatore ternario.
Non daremo un'occhiata a questa particolare serie di articoli perché è al di fuori della portata di ciò che stiamo cercando di coprire; tuttavia, se ti senti avventuroso e stai cercando un modo più conciso per scrivere un semplice se altro
istruzioni, quindi checkout l'operatore ternario nel manuale PHP.
scatola dell'interruttore
dichiarazioniDetto questo, c'è un altro tipo di condizionale che dobbiamo dare un'occhiata prima di passare al prossimo argomento.
Questo particolare costrutto rientra ancora nelle dichiarazioni condizionali; tuttavia, direi che lo vedresti usato meno frequentemente del suo se altro
controparte.
Come dice il titolo, questo è chiamato il scatola dell'interruttore
dichiarazione. Anche se personalmente penso che il linguaggio lo renda un po 'più complicato da seguire, il modo in cui il controllo scorre attraverso le valutazioni non è molto diverso da quello che abbiamo già visto.
Come abbiamo fatto con il se altro
dichiarazioni, vediamo prima come scatola dell'interruttore
è strutturato e quindi daremo un'occhiata ad un paio di esempi banali.
La prima cosa da notare su questo particolare tipo di condizionale, è che la valutazione avviene in un unico punto: nella parte superiore del blocco di codice proprio accanto al
interruttore
dichiarazione.Qui, la valutazione avviene una volta e poi ciascuna delle successive
Astuccio
le dichiarazioni sono ciò che determina quale azione è intrapresa. C'è anche unrompere
dichiarazione inclusa con ciascuna delle affermazioni che discuteremo, e c'è anche unpredefinito
blocco di codice in fondo che discuteremo alla fine dell'articolo, pure.Ma prima di fare qualsiasi cosa, impostiamo un esempio un po 'più pratico di cosa sia basilare
scatola dell'interruttore
sembra una dichiarazione.Supponiamo di avere un valore,
$ first_name
, e quindi vogliamo prendere una certa linea d'azione in base al nome della persona. In questo esempio, imposteremo l'indirizzo email di una persona in base al loro nome. Se non riconosciamo il nome della persona, allora imposteremo il valore uguale anullo
.Certo, è un esempio un po 'forzato, ma dimostrerà il punto:
Diamo un'occhiata al flusso di controllo nell'esempio sopra:
$ persons_name
come 'Tom' e inizializziamo il $ EMAIL_ADDRESS
come una stringa vuota.$ persons_name
alla dichiarazione switch per la valutazione.$ persons_name
contro ogni valore specificato nella dichiarazione del caso.$ persons_name
, poi il $ EMAIL_ADDRESS
sarà impostato su '[email protected]'Se dovessimo passare "David" come il $ persons_name
poi $ EMAIL_ADDRESS
sarebbe impostato su '[email protected]'.
Quindi, se dovessimo passare qualunque altro nome di "Tom" o "David", quindi il $ EMAIL_ADDRESS
sarebbe impostato su NULLO
. È anche importante notare che scatola dell'interruttore
è case sensitive. Ciò significa che se dovessi passare "tom" anziché "Tom", sarebbero trattati come casi diversi.
Infine, nota che ciascuno Astuccio
termina con a rompere
dichiarazione. Questo è importante perché rompere
indica al codice di saltare fuori dal scatola dell'interruttore
dichiarazione e continuare a lavorare su qualunque codice venga dopo.
E 'estremamente importante capire che se si dimentica una dichiarazione di rottura, allora immediatamente cadrà al Il prossimo affermazione di un caso che può ovviamente avere risultati errati (come l'impostazione dell'errore $ EMAIL_ADDRESS
).
Un esempio in cui puoi sfruttare questo a tuo vantaggio è come questo:
Nell'esempio precedente, abbiamo definito i casi per "Tom" quando è in minuscolo o ha la prima lettera maiuscola e dimostra come il codice passerà al successivo
Astuccio
dichiarazione.Ma c'è un modo ancora migliore per rendere questo più a prova di proiettile:
Si noti che questo accetta la funzione PHP
strtolower
per forzare l'arrivo$ persons_name
essere completamente minuscolo. Questo ci consente di perfezionare ulteriormente le nostre dichiarazioni del caso.Che succede Avanti?
In questo articolo, abbiamo esaminato il primo di due gruppi di strutture di controllo che sono disponibili in PHP. No, questi non sono esplicitamente parte della programmazione orientata agli oggetti, ma prima di arrivare effettivamente a parlare di aspetti più fondamentali del paradigma, dobbiamo capire tutti i punti più sottili che ci permettono di scrivere codice orientato agli oggetti.
A tal fine, continueremo questa discussione sulle strutture di controllo nel prossimo articolo esaminando i loop.
Dopodiché, saremo pronti a rivolgere la nostra attenzione alle funzioni. Per coloro che hanno familiarità con la programmazione procedurale, le funzioni non sono nulla di nuovo; tuttavia, se sei nuovo alla programmazione orientata agli oggetti, ci sono una serie di fattori che li differenziano da come vengono utilizzati nella programmazione procedurale.
Questa è la tabella di marcia per la prossima serie di articoli. Come al solito, i feedback sono sempre benvenuti e non vedo l'ora di continuare la discussione nel prossimo articolo.