PHP-konstruktion: skapa instanser av klasser
Idén om objektorienterad programmeringär mycket bredare än PHP-möjligheterna på grund av dess specifika egenskaper, men även i befintlig implementering ger programmeraren obegränsade möjligheter. PHP-konstruktionen är en speciell metod för en klass (objekt), som kallas varje gång en instans av klassen skapas.
Begränsningen är att PHP fungerar just nusidbildning. I det ögonblick då sidan uppdateras eller en annan sida på samma webbplats laddas, bildas det nödvändiga objektet igen från början.
Skapar en förekomst av en klass
En klassbeskrivning behöver inte ha en konstruktör. Om du behöver förbereda de ursprungliga värdena för variabler, ta tillfället ihop med instantiering av klassen (objektet), utför vissa åtgärder på andra objekt, då kan du inte använda PHP-klassens konstruktionssyntax och skriva rätt kod utanför klassmetoderna.
Genom logik av objektorienterad stilprogrammering, varje klass måste ha en konstruktör, dessutom är det nödvändigt att starta klassträdet från den mest abstrakta (absolut tomma) förfader. Det är ett förflutet av det förflutna, inte en förnuftig övning.
När stamtavlan börjar med en meningsfull klass som har egna data och egenskaper associerade med externa data (objekt), kan funktionsrutiner inte utelämnas.
I det här exemplet, när du skapar (PHP-konstruktion)förekomsten av datumklassen kommer att kallas denna funktion (konstruktör). Den har ett visst namn __construct och kallas av automaten endast en gång när en förekomst av klassen skapas.
I denna klass, statiskvariabel $ iUniqueNo, som i varje ny instans av en sådan klass kommer att ha ett unikt värde. Instanser av klasser har ingenting gemensamt med undantag för beskrivningen i PHP ram och syntax tillhandahålls av utvecklaren av deras interaktionsmetoder.
Erfarenhet av initialiseringslogiken
Varje objekt måste inse sitt egetsyfte, ha vad som är rätt för honom och gör vad han måste. Ur en sådan rimlig synvinkel kan initialisering på varje nivå av stamtavlan innefatta initialisering i varje förfader kallad från efterkommandens nivå.
I det här exemplet är sökordets förälder :: låter dig ringa förfaderkonstruktören från efterkommandernivån. Semantiken är enkel. Först måste förfaderen utföra sin initialisering, då den nuvarande förekomsten. Den första följer sin logik, den andra - sin egen.
När varje objekt är engagerat i sitt eget företag ser den övergripande processen korrekt och förståeligt ut. Men denna regel bör inte betraktas som en norm för alla system av objekt.
Stamtavla av systemet av matobjekt iDen första approximationen kan ha något gemensamt, men produkterna av mjölk, vattenmelon, makaroner och spannmål, även om de hänvisar till ett sådant system, men ser och beskriver ganska annorlunda.
Utvecklaren måste bygga varje systemobjekt från ansökningsområdet, och inte från hur det en gång föreslogs av någon. Varje uppgift är unik, kravet att använda det i PHP föräldrakonstruktion är inte absolut.
Allmänna och privata konstruktörer
Som standard är konstruktören generisk och kan användas av alla efterkommande. Ej nödvändigt att ange public function konstruktion, PHP behandlar som standard allt som beskrivs som generiskt.
Hur mycket är det meningsfullt att använda sökordet privata när det gäller att beskriva konstruktörer? Uppgiftens specificitet, funktionen i utvecklingsprocessen eller programmerarens preferenser?
Ur konceptuell synpunkt, stamtavlanFöremål kan tolerera förbud mot förfäder i förhållande till efterkommande, men hur mycket är rimlig logik att säga är svår, i alla fall i ett allmänt sammanhang.
Objekt livstid
Begreppet objektorienteratProgrammeringen är bredare än PHP-konstruktionsklassen av den enkla anledningen att den senare endast existerar vid bildformning, dess omskapande eller skapande av en annan sida på webbplatsen.
Deltagande av AJAX via JavaScript-webbläsare och korrekt kod på servern hjälper till att förlänga objektets liv, men i vilken version som helst kommer det att vara en begränsad stil.
PHP ger möjlighet att utföra ett manus påserver, när klienten "kopplas bort" och "tillåter" klienten tillbaka till skriptet som lanserades tidigare, men det här är inte alternativet när objektorienterat program implementeras i C ++.
I det senare fallet kan du bygga ett komplett system av objekt, som kommer att finnas "för alltid", medan programmet körs och körs. Detta är dock det enda som ett stationärt programmeringsspråk som C ++, C #, Pascal & Delphi kan skryta med. I en dynamisk Internetvärld byggs allt på olika sätt, lever fortare och uppnår mer.
Från serialisering till självbevarande
Du kan hitta en historisk motivering för termen"serialisering" och utseendet i vardagen av begreppet "magiska metoder". Men allt är mycket enklare. Exakt samma som C ++-friheten skiljer sig från C # -styvheten, serialisering skiljer sig från banala begrepp:
- skriv ett objekt till en sträng;
- läs objektet från strängen.
Omgivande magi och mytiskmagiska metoder - vacker, sonorös, men inte så praktisk. Informationsvärlden är intressant, främst för att allt synligt, hörbart och konkret kan beskrivas med en enkel och konsekvent text.
Information har alltid varit, är och kommer att vara en rad symboler. Det spelar ingen roll vilken typ av natur. I formella konstruktioner av programmeringsspråk är karaktärernas karaktär ett - kodningsbordet.
Tanken att vrida ett objekt i en sträng så att du kan återställa den från den här linjen utan att förlora kärnan, om det behövs, är en mycket praktisk idé.
Från självhushållning till egenutveckling
Semantiken hos konstruktionskonstruktören PHP inom sin syntax är begränsad, men om formgivaren utvecklas från den utvecklade positionen:
- det finns en början - en helt ny instans skapas;
- det finns ett nuvarande tillstånd - en befintlig instans skapas.
Begränsningar av PHP eftersom systemet med objekt på det existerar endast vid tidpunkten för sidbildning, kommer att tas bort av sig själva.
Skapa ett system av objekt under bildandetsida på webbplatsen kan du spara den. För enkelhetens skull, är denna process inte nödvändigtvis kallas serialisering kan vi begränsa bevarandet av status quo (databasfiler), och när det är nödvändigt att sammankalla samma sida eller skapa en annan på samma plats, helt enkelt återställa den nuvarande situationen, som redan har bildats.
I detta sammanhang skapas ett system av objekt baraen gång och i processen på webbplatsen utvecklas det helt enkelt. Med detta schema kan du designa ett system av objekt som något som anpassar sig till förändrade existensvillkor.
Ett självbesparat system av objekt "minns" besökarens handlingar och sidstatus, och varje gång PHP startas skapas det inte från början, men återställs i tidigare tillstånd.</ span </ p>