Programmazione orientata agli oggetti in WordPress Strutture di controllo I

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:

  1. Un introduzione
  2. Classi
  3. tipi

In questo articolo parleremo delle strutture di controllo.

Quali sono le 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 dichiarazioni
  • scatola 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.

Dichiarazioni condizionali

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 dichiarazioni

Come 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 o falso.

Quindi, per esempio, diciamo che abbiamo due valori:

  1. $ is_active
  2. $ 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 per falso.

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:

  • Se $ is_active è impostato su true, quindi imposta il $ TOTAL_COUNT a uno. $ is_active non è vero.
  • Altrimenti, se il $ 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.
  • Se $ 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.

Qualunque altra cosa?

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 dichiarazioni

Detto 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 un rompere dichiarazione inclusa con ciascuna delle affermazioni che discuteremo, e c'è anche un predefinito 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 a nullo.

Certo, è un esempio un po 'forzato, ma dimostrerà il punto:

Diamo un'occhiata al flusso di controllo nell'esempio sopra:

  • Definiamo a $ persons_name come 'Tom' e inizializziamo il $ EMAIL_ADDRESS come una stringa vuota.
  • Passiamo quindi al $ persons_name alla dichiarazione switch per la valutazione.
  • La struttura di controllo valuterà il $ persons_name contro ogni valore specificato nella dichiarazione del caso.
  • Poiché "Tom" è il valore di $ 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.