Inhoudsopgave:
Video: Opdracht beveiliging 2012 - Session beveiliging en beveiliging login informatie 2024
Objectgeoriënteerd programmeren in PHP heeft een andere functie die het zeer nuttig maakt voor grote projecten. Veel objecten zijn aan elkaar gerelateerd en u kunt een stamboomrelatie gebruiken om uw programmering te vereenvoudigen.
Een critter maken op basis van een ander critter
Er is een nieuw beest in de stad. Deze heeft dezelfde basiskenmerken, maar een slechtere houding. Bekijk de code om te zien wat er aan de hand is:
erven. php-naam glanst naar je zonder iets te zeggen. ";} // einde van glower // als je een bestaande methode overschrijft, verandert het gedrag de public function talk () {return" Geen van je zaken! ";} // einde van gesprek } // eindklasse def $ a = nieuwe BitterCritter (); print $ a-> glower (). ""; print $ a-> talk (). "
";?>
Dit voorbeeld is een illustratie van een heel gebruikelijke programmeringssituatie, waar je een specialisatie van een eerder gedefinieerde klasse wilt hebben.Er is al een Critter-les, maar je wilt een nieuw soort critter.Het nieuwe critter (de BitterCritter) begint met hetzelfde algemene karakteristieken van het gewone critter, maar brengt een nieuwe wending: het object-georiënteerde idee van inheritance is een perfecte manier om met deze situatie om te gaan.
JavaScript ondersteunt een andere vorm van objectgeoriënteerd programmeren op basis van een idee met de naam prototyping in plaats van overerving. Mensen voeren lange en saaie gesprekken over welke techniek beter is, maar uiteindelijk maakt het niet uit mu ch. De meeste OOP-talen ondersteunen de vorm van overerving die wordt gebruikt in PHP, dus je moet echt weten hoe het werkt.
Hoe ervaar je de wind (en wat dan ook)
Ga als volgt te werk om overerving te implementeren:
-
Begin met een bestaande klasse.
Voor dit voorbeeld begint u met de gewone Critter-klasse, die u importeert met de require_once () -functie.
-
Maak uw nieuwe klasse met het keyword extends.
Als u de klasse definieert, gebruikt u het sleutelwoord extends om aan te geven welke klasse u overneemt, en begint uw nieuwe klasse met alle eigenschappen en methoden van de bovenliggende klasse.
-
U hebt toegang tot openbare en beschermde elementen van de bovenliggende, maar niet tot privé-elementen.
Als een eigenschap of methode in de oorspronkelijke klasse als privé is gedefinieerd, is dit echt niemand anders. Geen andere codefragmenten hebben toegang tot dat element. Over het algemeen moet de nieuwe onderliggende klasse echter toegang hebben tot de elementen van de bovenliggende klasse wanneer u een klasse erven. Daarom moet u eigenschappen maken als beschermd in plaats van privé.
-
Nieuwe eigenschappen en methoden toevoegen.
U kunt uw nieuwe klasse uitbreiden met aanvullende eigenschappen en methoden die de ouder niet had. De BitterCritter heeft nu een methode glower () die gewone wezens niet hebben.
-
U kunt ook oudergedrag overschrijven.
Als u een methode herdefinieert die de bovenliggende klasse had, wijzigt u het gedrag van de nieuwe klasse. Hiermee kunt u bestaand gedrag wijzigen (een vorm van een objectgeoriënteerd idee genaamd polymorfisme ).
Deze demonstratie is slechts het meest glimp van objectgeoriënteerd programmeren. Er is veel meer aan deze vorm van softwareontwikkeling, maar de basis is er allemaal. Hoewel je misschien niet meteen de noodzaak ziet om je eigen objecten helemaal opnieuw te bouwen, zul je absoluut objectgeoriënteerde PHP-code tegenkomen als je begint met het verkennen van meer complexe ideeën, zoals gegevensprogrammering en contentmanagementsystemen.