Object-Oriented Programming în WordPress Tipuri

Pentru cei care încep doar această serie, rețineți că ne uităm la programarea orientată pe obiecte utilizând PHP în contextul WordPress.

Publicul țintă

Facem acest lucru din perspectiva foarte începător, deci dacă sunteți un dezvoltator cu experiență sau sunteți familiarizați cu multe dintre aspectele programării orientate pe obiecte, atunci această serie probabil că nu este pentru dvs..

Cu asta a spus, dacă tu sunteți interesat de învățarea programării orientate pe obiecte în PHP și considerați-vă un începător, atunci vom continua seria în acest articol vorbind despre unele tipuri de date pe care le oferă PHP.

Dar, mai întâi, asigurați-vă că ați ajuns la articolele anterioare din serie, pe măsură ce fiecare se bazează unul pe altul:

  1. Introducere
  2. Clase

Odată ce ați fost prinși, putem începe să vorbim despre tipuri.

Ce sunt tipurile?

Am încheiat ultimul articol cu ​​următoarele:

Vom ajunge la asta, dar mai întâi trebuie să discutăm unele dintre aspectele mai primitive ale programării, cum ar fi șiruri de caractere, matrice, bucle și condiționări.

Acum, șirurile, matricele și așa mai departe sunt considerate tipuri. Buclele și condiționările sunt ceea ce sunt cunoscute ca structuri de control pe care le vom acoperi în articolul următor.

Așadar, în același timp, să vină cu un termen simplu pentru ceea ce reprezintă un tip de date, astfel încât să știm cum să-i modelem din punct de vedere conceptual progresul nu numai cu acest articol, ci și cu restul conținutului din serie.

Pentru oricine a scris orice codul care include variabile, atunci probabil ați părea ceva asemănător cu următorul:

  • $ nume = 'Tuts + WordPress';
  • $ is_active = true;
  • $ age = 42;
  • … si asa mai departe.

În forma cea mai elementară, veți auzi probabil codul de mai sus definit ca variabile cu definiții și este corect, dar este o definiție foarte generalizată.

Veți vedea, ori de câte ori definiți o variabilă în PHP, prin prefixarea cu variabila $. Aceasta permite PHP să știe că definiți o variabilă și că aceasta va reprezenta o valoare tipică.

Destul de ușor, corect?

Lucrul este că sunt diferite tipuri în PHP. Pentru cei care vin din ceea ce sunt cunoscuți ca "limbi puternic tipizate", vom vorbi despre asta mai mult, dar știm că PHP oferă următoarele tipuri de date:

  • boolean
  • numere întregi
  • numere cu numere plutitoare
  • siruri de caractere
  • matrice
  • obiecte
  • … și altele

Totul, de la booleani prin șiruri de caractere, poate fi considerat un tip simplu de date în cazul în care array-urile și obiectele pot fi considerate tipuri de date mai complexe.

Tipuri simple de date

Tipurile de date simple sunt definite ca atare, deoarece datele pe care le reprezintă sunt, știți, simplu. Aceasta înseamnă că, în mod normal, aceasta va cădea sub simbolul unor adevărate, false, zecimale și cuvinte și / sau fraze.

Pentru a oferi exemple concrete ale fiecăruia dintre cele de mai sus:

  • Valorile booleene sunt menite să mențină valoarea Adevărat sau fals.
  • Numerele întregi se referă la numere întregi. Aceasta înseamnă că nu include componente fracționare sau zecimale. Acestea includ numere precum -12, -2, 1, 100, 5000, si asa mai departe.
  • Numerele de puncte plutitoare sunt un fel de opus al Integurilor în sensul că ele do reprezintă valori cu părți fracționare. De exemplu, puteți vedea 3.1459, 2.5, 100.25, si asa mai departe. Dacă ați încerca să salvați valoarea, să zicem, 3/4 atunci ai salva de fapt .75 dacă nu l-ați salvat ca un șir. Asta înseamnă că trebuia să salvezi '3/4'. Observați delimitarea subtilă între cele două? Unul are citate și unul nu.
  • Vorbind despre șiruri de caractere, șirurile reprezintă orice cuvânt sau set de caractere alfanumerice care alcătuiesc o serie de litere și numere. Acesta poate fi un singur cuvânt, poate fi o propoziție, poate fi propoziție și poate fi o serie aleatoare de caractere, cum ar fi un șir criptat. Exemple de șiruri de caractere includ "fraze ca aceasta" sau un singur 'cuvânt' sau chiar ceva mai complex 'E952098vjdkw94kd'

Iată captura, totuși, oricare dintre tipurile de date de mai sus poate fi convertită în șiruri de caractere prin împachetarea lor în ghilimele.

Dar există o captură

De exemplu, dacă ați lucra cu valoarea booleană a cuvântului, de exemplu, adevărat, trebuie să îl stocați într-o variabilă de genul: $ is_active = 'true'; atunci de fapt ați creat doar un șir care citește Adevărat.

În mod similar, dacă ați scrie un șir care citește $ age = '42'; apoi ați creat un șir care conține numărul 42nu un număr întreg.

Are sens?

Motivul pentru care acest lucru contează este că atunci când vine timpul să lucrăm cu structurile de control - pe care le vom analiza în articolul următor - este că, uneori, compararea funcționării poate avea consecințe nedorite dacă nu sunteți sigur care tipul de date cu care lucrați.

Tipuri complexe de date

În plus față de tipurile de date simple, avem și tipuri complexe de date care, în opinia mea, nu sunt cu adevărat acea complicat. De fapt, mă gândesc la ea ca pe un mod fantezist de a spune că avem modalități de stocare mai multe informații într-o singură variabilă; întrucât, cu tipuri simple, avem o modalitate de a stoca câte o singură informație într-o singură variabilă.

Destul de ușor de reținut, nu? Deci, care sunt unele dintre tipurile de date mai complexe?

Cele două tipuri de date complexe pe care le vom concentra în această serie ca arrayuri și obiecte. Există mai multe, dar sunt în afara sferei acestei serii, deci, dacă sunteți interesat, atunci nu ezitați să aruncați o privire la manualul PHP, dar vă avertizez: dacă sunteți un începător absolut, conținutul poate simți un pic copleșitor.

  • Arrays reprezintă modalități de stocare a mai multor informații într-o colecție. Luați în considerare, pentru un moment, că aveți un set de nume pe care doriți să le stocați într-o colecție numită în mod corespunzător nume de $. În PHP, ați defini o matrice și o atribuiți unei variabile ca aceasta: $ nume = ['John', 'Paul', 'Ringo', 'George']; Observați aici că avem o serie de șiruri de caractere, dar un alt aspect al array-urilor PHP este acela că pot conține mai multe tipuri de date. Asta înseamnă că poți avea o matrice care arată $ different_types = [42, TRUE, "Star Wars", .007];. Destul de cool, corect?
  • Manecile asociative sunt la fel ca matricele standard pe care le vedem, cu excepția faptului că sunt realizate din perechi de valori cheie. Aceasta înseamnă că fiecare valoare este extrasă printr-o cheie, așadar dacă am fi transformat prima matrice într-o matrice asociativă, atunci ar putea să arate cam așa: array ('chitară ritmică' => 'John', 'bass' > "Paul", "lead-chitarist" => "George", "tobe" => "Ringo"); Dacă formatul pare ciudat chiar acum, nu vă faceți griji! Vom analiza mai bine aceste detalii mai târziu în serie. Primul rezultat este că matricele standard sunt indice numeric - adică, 0, 1, 2, 3, și așa mai departe - și matricele asociate sunt indexate prin cheile lor, cum ar fi 'ritmul chitarei', 'tobe', si asa mai departe.
  • Obiectele pe care le-am atins ultima oară sunt, probabil, cele mai complexe tipuri de date oferite de PHP deoarece sunt o combinație de Tot. Atributele lor sunt alcătuite din tipuri de date sau chiar din alte obiecte, sunt funcții și realizează operațiuni nu numai pe alte tipuri de date simple, ci și pe tipuri de date complexe.

În ceea ce privește obiectele în cauză, cel mai bun mod de a vedea cât de complex pot obține este să le vezi în acțiune, pe care vom fi sigur că o vom face atunci când construim un plugin.

O notă despre tablouri

Rețineți că, în unele limbi, dimensiunea matricei trebuie declarată înainte de a putea să o utilizați. De exemplu, în C, trebuie să îi spuneți compilatorului că matricea va ține exact, să zicem, 10 valori.

În cazul PHP, asta este nu cazul. Matricea PHP este dinamică, ceea ce înseamnă că puteți continua să adăugați date la matrice fără a fi nevoie să măriți dimensiunea acesteia. Da, ca și în cazul a ceva, există limite, dar de obicei este legată de mărimea datelor stocate sau de cantitatea de memorie pe care o mașină o are.

Nu lăsați frazele să te intimideze!

Dar, pentru moment, nu lăsați cuvintele simplu și complex te intimida. Acordat, "simplu" este relativ simplu, nu? Dar "complex" are această conotație că va fi greu de înțeles și acest lucru nu este adevărat - sperăm că acest articol este demonstrat că.

Tipurile complexe de date pot purta simplu mai multe fragmente de date. Tipurile de date simple nu pot.

Sunt mai multe?

Da sunt. Anume resurse, callbacks și pseudo-tipuri. Cele mai multe dintre acestea sunt în afara sferei de aplicare pentru această serie specială; cu toate acestea, noi Mai sfârșesc prin apeluri de apel (care sunt un anumit tip de funcții) mai târziu când începem să construim pluginul nostru.

Simțiți-vă liber să citiți pe cât de mult posibil, dar știți că acestea depășesc conținutul conținutului pe care îl vom acoperi prin această serie specială, deci dacă vă simțiți copleșiți de ele, probabil că le veți revizui odată ce seria este completă.

Un cuvânt despre limbi strălucitoare

Unele limbi de programare sunt cunoscute care sunt tipărite dinamic (sau slab tastate) unde, în timp ce alții sunt cunoscuți ca limbi puternic tipizate.

Acesta este un alt caz în care terminologia intimidează adesea noii programatori, mai degrabă decât împuternicirea acestora să știe să folosească instrumentele disponibile, dar factoringul distinctiv între cele două este într-adevăr destul de simplu:

  • Limbile bine tipizate înseamnă că variabilele trebuie mai întâi declarate ca un anumit tip și pot numai țineți un anumit tip de date. De exemplu, dacă aș vrea să dețin un șir, atunci aș declara variabila ca string sMyName; Apoi, aș stoca un șir în variabila. sMyName = 'Tom McFarlin';. Aceasta înseamnă că sMyName variabil poate numai țineți șirurile. Dacă încercați să stocați alt tip de date în acea variabilă, atunci compilatorul va arunca o eroare.
  • Limbajele tipărite dinamic, cum ar fi PHP, permit unei singure variabile să dețină mai multe tipuri în orice punct de execuție dat. Folosind exemplul de mai sus, aș putea să spun așa de ușor$ my_name = 'Tom McFarlin'; cum puteam $ my_name = false.  Dacă încercați să stocați alt tip de date în acea variabilă, atunci funcționează bine. Puteți vedea că acest lucru are ambele avantaje ca dezavantaje.

Incotro acum?

Înainte de a ne întoarce în lumea programării orientate pe obiecte, trebuie să vorbim despre câteva structuri de bază suplimentare ale programării, cum ar fi structurile de control. 

Acestea includ lucruri cum ar fi bucle, condiționări și așa mai departe, care pot afecta fluxul de cod pe întreaga durată de viață a programului. În plus, acestea lucrează împreună cu tipurile de date pe care le-am prezentat aici.

Deci, înainte de a ne îndrepta spre următorul articol, asigurați-vă că analizați tot ceea ce se întâmplă aici, lăsați comentarii, întrebări și feedback în feedul de comentarii.

 Ne vedem în următorul articol!

Cod