Mentre continuiamo la nostra discussione sulla programmazione orientata agli oggetti nel contesto di WordPress, è tempo per noi di iniziare a parlare delle caratteristiche attuali della programmazione orientata agli oggetti.
Sebbene abbiamo già trattato le classi, abbiamo avuto bisogno di esplorare alcuni costrutti di programmazione fondamentali prima di tornare ad alcuni concetti centrali orientati agli oggetti.
In questo articolo, inizieremo a parlare di funzioni e attributi: due aspetti fondamentali della programmazione orientata agli oggetti. Ma prima, assicurati di essere coinvolto nei precedenti articoli:
Uno dei punti che vorrei ripetere su questa serie è che stiamo lavorando all'esame della programmazione orientata agli oggetti nel contesto di WordPress partendo dagli aspetti fondamentali della programmazione.
Lo stiamo facendo per assicurarci che chi è alle prime armi della programmazione abbia tutto ciò di cui ha bisogno non solo per iniziare a programmare, ma anche per imparare il paradigma e infine lavorare alla creazione di un plugin per WordPress.
Detto questo, riprendiamo la discussione parlando di funzioni e attributi.
Per coloro che hanno familiarità con la programmazione procedurale, allora avrete senza dubbio familiarità con le funzioni - dopo tutto, sono come si fa a lavorare, giusto?
Ma per coloro che stanno semplicemente saltando in programmazione, ci sono due cose da capire sulle funzioni:
Per il secondo punto, è vero che gran parte di ciò che abbiamo discusso prima - cioè, variabili, condizionali, cicli e così via - sono responsabili anche del completamento di un singolo lavoro unitario; tuttavia, ognuno di questi lavora in congiunzione l'uno con l'altro per ottenere qualcosa di leggermente più grande di loro.
A seconda della lingua, è probabile che tu senta questi chiamati metodi o routine. Indipendentemente dalla terminologia utilizzata, il punto è che le funzioni utilizzano costrutti fondamentali per completare un'azione.
Le funzioni possono funzionare anche in tre modi:
Daremo un'occhiata a ciascuno di questi scenari in modo più dettagliato in un solo momento, e in un articolo futuro vedremo come funzionano in classe. Per ora, diamo un'occhiata a come funzionano le funzioni all'interno di PHP e molte sfumature su ciascuna di esse.
Ricordiamo dalla sezione precedente che ci sono momenti in cui possiamo definire funzioni che non accettano input e non restituiscono alcuna informazione.
In questo caso, questi tipi di funzioni eseguiranno in genere alcuni tipi di operazioni (ad esempio l'aggiornamento di un'opzione nel database) e verranno richiamati da un'altra funzione dopo che una determinata operazione è stata completata.
Quindi, per esempio, diciamo che abbiamo una funzione che vogliamo utilizzare per aggiornare il database di WordPress sottostante. Ciò richiede che conosciamo diverse cose:
update_option
Nel nostro caso, diciamo che vogliamo aggiornare un valore nel database identificato dal blog_last_updated
chiave. Quindi, useremo la funzione PHP tempo()
per memorizzare l'ora in cui viene chiamata la funzione.
Detto ciò, definiamo la nostra funzione:
In base alla descrizione che abbiamo fornito sopra, puoi vedere che il corpo della funzione usa il
update_option
Funzione API di WordPress con la chiave e il valore specificati che abbiamo descritto.Questo può quindi essere invocato da un altro pezzo di codice semplicemente chiamando
set_blog_updated ();
.argomenti
Le funzioni che non accettano argomenti possono essere utili solo fino a un certo livello. Ad un certo punto, è necessario essere in grado di passare informazioni in una funzione in modo che possa eseguire un tipo di calcolo, operazione o valutazione sulle informazioni.
In linea con il nostro esempio precedente, diciamo che vogliamo ancora aggiornare il database con un timestamp, ma solo se una determinata chiave è passata nella funzione; altrimenti, non faremo nulla.
Si noti che la firma della funzione, ovvero il nome della funzione e i dati tra parentesi, è stata aggiornata per accettare una variabile a cui fa riferimento
$ chiave
.Successivamente, la funzione utilizza un condizionale per verificare che il valore della variabile sia uguale a quello della chiave che stavamo guardando nella prima versione della funzione. Per semplificare il confronto, il valore di
$ chiave
usando PHPstrtolower
funzione.Ciò significa che possiamo invocare la funzione nel modo seguente e ancora aggiornarlo:
set_blog_updated ('BLOG_LAST_UPDATED');
set_blog_updated ('Blog_Last_Updated');
set_blog_updated ('blog_last_updated');
Tutte le suddette chiamate di funzione eseguiranno la seguente operazione; tuttavia, se dovessimo passare qualcos'altro nella funzione, il condizionale valuterà falso
e lo farei non attiva la funzione di aggiornamento.
Ad esempio, chiamando set_blog_updated ('not_now');
voluto non lavoro.
Ora, diciamo che vogliamo la funzione con cui stiamo lavorando per restituire un valore. In particolare, diciamo che volevamo restituire un valore sull'esecuzione corretta della funzione di aggiornamento.
Per fare ciò, possiamo approfittare di una funzione ritorno
dichiarazione e il valore restituito dalla funzione update_option. Secondo il Codice WordPress, update_option
restituirà il seguente:
Vero se il valore dell'opzione è cambiato, false in caso contrario o se l'aggiornamento non è riuscito.
A tal fine, possiamo adattare la nostra funzione per lavorare in questo modo:
Ora abbiamo una funzione che accetta un argomento, restituisce un valore e sfrutta anche un condizionale non solo per aggiornare il valore ma anche per assicurarsi che il valore sia stato aggiornato correttamente.
Data la funzione di cui sopra, possiamo invocarla come negli esempi precedenti, ma ora possiamo memorizzare il risultato in una variabile che ci consentirà di migliorare ulteriormente il codice nel nostro programma.
Ad esempio, possiamo continuare a chiamare la funzione dicendo
set_blog_last_updated ('blog_last_updated');
ma ora possiamo anche memorizzare il risultato della funzione in una variabile.Per fare questo, tutto ciò che dobbiamo fare è scrivere una riga di codice che esegua quanto segue:
$ blog_was_updated = set_blog_last_updated ('blog_last_updated');
In questo caso, la variabile$ blog_was_updated
sarà impostato suvero
se la condizione è stata eseguita e la chiamata di aggiornamento ha avuto esito positivo, ma lo saràfalso
se la condizione non è stata eseguita o se è stata eseguita ma ilupdate_function
mancato.Argomenti a lunghezza variabile
C'è un altro aspetto delle funzioni che vanno oltre lo scopo di questo particolare articolo e che sono argomenti a lunghezza variabile. In breve, c'è un modo in cui una funzione può accettare un numero di argomenti che non siamo in grado di prevedere mentre scriviamo il codice.
Se sei interessato a leggere in anticipo, puoi consultare l'articolo nel manuale PHP; tuttavia, cercheremo di spiegarlo più avanti nella serie.
attributi
A questo punto, cambieremo le marce e parliamo di qualcosa che è puramente correlato alla programmazione orientata agli oggetti e che sono gli attributi di classe.
Ricordiamo dalla nostra discussione sulle classi che abbiamo esaminato una classe di esempio per a
Post sul blog
. Per riferimento, il codice assomigliava a questo:class Blog_Post private $ author; private $ publish_date; private $ is_published; public function publish () // Pubblica qui l'articolo public function delete () // Elimina l'articolo quiA questo punto della serie, dovresti essere in grado di identificare facilmente la definizione della classe, la definizione della funzione e gli attributi.
Nello specifico, gli attributi sono le tre variabili presenti nella parte superiore del file sopra le funzioni. Come affermato nell'articolo sulle classi, gli attributi possono essere pensati come gli aggettivi che descrivono la classe.
Nell'esempio sopra, abbiamo una classe che rappresenta un post di blog e un post di blog può essere descritto dall'autore, la sua data di pubblicazione e se è stato pubblicato o meno.
Questi particolari valori non sono altro che variabili come abbiamo visto in precedenza nella serie e possono contenere qualsiasi tipo di valore sia un tipo di dati primitivo come una stringa, un intero, un valore booleano o può fare riferimento a un tipo di dati più complesso come come una matrice o un altro oggetto.
Il punto di attributi è che esistono al livello di classe. Ciò significa che le variabili possono essere utilizzate in qualsiasi funzione definita nella classe, non devono essere passate come argomenti di funzione e possono essere aggiornate per riflettere lo stato dell'oggetto in qualsiasi momento durante la sua runtime.
Ora, in termini di Come sono impostati, questo viene fatto nel contesto di un tipo speciale di funzione chiamato costruttore. In breve, un costruttore è una funzione che viene messa da parte specificamente per inizializzare una classe e, in molti casi, viene utilizzata per avviare i valori.
In PHP, un costruttore è una funzione che ha un nome
__costruire
che è una parola riservata nella lingua. Quindi, dati gli attributi sopra e il nostro manuale sulle funzioni, ecco come possiamo procedere all'inizializzazione dei nostri attributi:class Blog_Post private $ author; private $ publish_date; private $ is_published; funzione pubblica __construct () $ this-> author = "; $ this-> publish_date = null; $ this-> is_published = false; public function publish () // Pubblica l'articolo qui public function delete () // Elimina l'articolo quiUna delle cose più importanti da rimuovere dal codice precedente è che gli attributi sono riferimenti leggermente diversi rispetto alle variabili normali. In particolare, si noti che sono referenziati usando il
$ questo
parola chiave. Questo è ciò che differenzia gli attributi dalle variabili normali all'interno di una definizione di classe.In secondo luogo, si noti che le variabili impostate sui valori iniziali. Così com'è adesso, ogni blog post che verrà creato lo farà non avere un autore che è specificato, lo farà non avere una data di pubblicazione, e lo farà non avere uno stato di pubblicazione.
Man mano che approfondiamo la discussione sulla programmazione orientata agli oggetti, parleremo di come sono impostate le variabili, come possono essere utilizzate in tutta la classe, come possono essere impostate, recuperate e così via.
Pubblico, Privato e Cosa?
Per quei lettori astuti, probabilmente hai notato le parole chiave utilizzate in tutto il codice come
pubblico
eprivato
. C'è anche un'altra parola chiave che viene utilizzata nella programmazione orientata agli oggetti e così èprotetta
.Ne parleremo in dettaglio nel prossimo articolo.
In arrivo
Come abbiamo appena detto, ci sono un certo numero di parole chiave che sono usate per riferirsi ad attributi e funzioni che hanno a che fare con ciò che è noto come scopo. Nel prossimo articolo, inizieremo ad esplorare l'ambito delle variabili e delle funzioni, che è un'idea fondamentale nella programmazione orientata agli oggetti.
Così come abbiamo coperto tutti gli elementi fondamentali della programmazione in PHP, ora ci stiamo preparando a spostarci di più nella programmazione orientata agli oggetti, dopo la quale passeremo all'applicazione dei concetti e delle tecniche nello sviluppo di WordPress.