Inleiding
Aan de hand van de vele vragen over classes, en OOP programmeren probeer ik hier mijn kennis met betrekking tot classes
met jullie te delen hopend dat er iemand wat aan heeft. Ik baseer mijn uitleg op een PHP5.0.1 php versie. NB: voor mijn variabelen notatie gebruik ik s, i, a om aan te geven wat de value is
Wat zijn classes eigelijk?
Een class is een verzameling van objecten/functies die weer uit meerdere objecten bestaan.
In een class heb je de zogenoemde 'class-members' vanaf hier gedefineerd als de variabelen die de class bezit.
De 'class-methods' beter gedefineerd als de functies die de class bezit.
En uiteraard de class name.
Het maken van een class
Om een class aan te maken doe je het volgende, hier maak ik een login class aan.
<?php
class login {
}
?>
Hierna ga je de variabelen die je nodig denkt te hebben defineren dit kun je private of public doen.
Het defineren van private betekend dat de variabelen nergens anders dan in de class aangeroepen kunnen worden.
Je hebt 3 manieren om een variabel in een class te defineren
Private
Alleen toegangelijk binnen een class
Public
Zowel binnen als buiten een class toegangelijk.
Protected
Dit is een speciale manier om een var een bepaalde toeganswaarde toe te kennen.
NB: In php 4 of lager moet je gebruik maken van 'var' en kun je dus geen scope meegeven!
Even een heel simpel voorbeeld
<?php
class cReken {
public $iAmount1;
public $iAmount2;
private function construct__( $iAmount1, $iAmount2){
De construct functie is de functie die word geladen als de class word aangemaakt.
Dit kun je altijd gebruiken zolang je gebruik maakt van een class die niet static is! ( Hier word later verder op in gegaan ).
De destruct functie word daarintegen uitgevoerd bij het verwijderen van een object
Aanmaken class, Gebruik van this, en static initialisatie
Om $this binnen een class te gebruiken moet de class op de juiste manier geintisialiseerd worden door middel van een __construct();
Als je geen construct gebruikt kun je dus alleen je class static aanroepen.
Voorbeeld:
//Aanmaken class
<?php
$oClass = new cReken ( '1', '2' );
?>
Nu word je class geintisialiseerd en kun je gebruik maken van:
Je kunt nu verder alle rekensommen uitvoeren met $oClass->functie();
Of kun je je class aanroepen op de static manier:
<?php
cReken::telOp('1', '2');
?>
NB: Als je de class static aanroept word hij niet geintisialiseerd wat wil zeggen dat de construct niet in werking treed, waardoor het gebruik van $this fouten zal opleveren en je parameters moet meegeven.
Ook kun je vanuit ergens anders geen public functions aanroepen. Niet objected en niet static.
Commenten in classes
Zelf maak ik gebruik van ZEND DEVELOPMENT, waar het javadoc comment format erg overzichtelijk werkt.
Voorbeeld:
//het openen van de comment line
<?php
/**
* @Package login class
* @Access public
* @Author Steve M.
*
*/
?>
Hier zet je dus in het package, de access, en de naam van de schrijver die de class geschreven hebt.
Het defineren van variabelen
Bovenaan uitleg in het kort. @Var = het type dus INT, STRING, OBJECT, BOOLEAN etc. @Access = private of public
Voorbeeld:
<?php
/**
* Hier bewaren we de eerste parameter van de rekensom
*
* @Var int
* @Access public
*
*/
private $iAmount1 = NULL;
?>
Het defineren van functies
Bovenaan uitleg van functie @Var = eventuele parameters van functie. ( ook weer aangegeven in INT,STRING etc) @Return = eventuele return type ( INT,STRING etc ) @Access = private of public function
Er zijn eventueel nog meer types die je kunt defineren oa:
@Todo = Wat er nog evt gedaan moet worden aan een object @Param = Parameters @Subpackage = een subclass die gebruik maakt van extend(); @Global = defineer de evtglobals;
Tot slot
Hierbij mijn kleine uitleg met betrekking tot het gebruik van classes, ik hoop dat iemand hier wat aan hebt, en zo ook leert om classes, en hierbij
meer een stapje OOP te gaan programeren, voor aanvullingen, opmerkingen en/of discussie punten gewoon contact opnemen.