OOP (met Class werken)
Ik begrijp het niet helemaal, misschien dat iemand mij iets meer kan uitleggen op een simpele manier.
Ze maken dus een class... is dat één ding dat je vervolgens kunt aanroepen net zoiets als een function? enfin...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class ContForm{
var $UserName;
var $UserEmail;
function SendMail()
{
// mail versturen
// blablabla
}
}
?>
class ContForm{
var $UserName;
var $UserEmail;
function SendMail()
{
// mail versturen
// blablabla
}
}
?>
ik weet dat je variable aangeeft als "var $variable" en dat alles natuurlijk
binnen de class 'tag' moet zeg maar. Wat ik onder andere niet helemaal snap is dat je vaak ziet iets als $var -> $doh;
Hopelijk iemand die mij wat meer kan uitleggen over dit soort van 'denk werk' binnen het PHP gebeuren.
Groetjes
Met de klasse maak je dus het object, waarmee je vervolgens dingen kan gaan doen. Variabelen binnen klassen (dan heten ze properties) worden overigens sinds PHP5 niet meer aangeduidt met var, maar met hun zichtbaarheid: private voor variabelen die alleen binnen de klasse zelf bruikbaar zijn, protected voor variabelen die ook zichtbaar mogen zijn voor overervende klassen en public variabelen zijn voor iedereen zichtbaar. Je krijgt dan dus public $username bijvoorbeeld.
Als $username public is, kan je die aanspreken van buiten de klasse door $mijnObject->username. Dat pijltje is een speciale operator. Kijk ook eens op php.net voor de OOP mogelijkheden van PHP5.
Edit:
Linkje toegevoegd.
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
Je kan binnen een class functie in die class oproepen dmv $this -> functienaam();
Je kan de vars ook aanroepen, $this -> var;
$this->SendData();
bijvoorbeeld?
constanten moet ik even opzoeken geen idee wat dat zijn haha.
Iemand die ergens een goede tutorial weet hiervoor misschien?
OOP leren om het zo maar te noemen hehe
constanten zijn die dingen die je bovenaan difinieerd, var $variable; blablabla
Let erop dat een klasse een verzameling bij elkaar behorende functies en eigenschappen zijn. Als je een klasse maakt die email verstuurt en in die klasse maak je verbinding met een database om emailadressen op te halen, dan kan je dat beter door een apart database object laten doen.
Ik heb overigens net het 'handboek objectgeorienteerd programmeren' van Jan Beurghs gelezen. Op zich een toegankelijk (en relatief goedkoop) boek, ook al gaat het imho niet enkel over OOP (maar ook over 'gewone' programmeeraspecten). Enige nadeel vond ik verder dat hij Java als programmeertaal gebruikt in dat boek (waardoor sommige gedeelten onbruikbaar zijn voor andere programmeertalen), maar je kan het vrij makkelijk omzetten naar PHP.
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
Manaus schreef op 22.08.2007 14:42:
Juist niet, dat zijn variabelen! Constanten zijn 'variabelen' die niet veranderen: const CONSTANTE_WAARDE = 100;constanten zijn die dingen die je bovenaan difinieerd, var $variable; blablabla
Variabelen kunnen en mogen wél veranderen!
Over constanten binnen klassen staat ook het een en ander in de PHP handleiding waarvan ik eerder de link gaf.
PHPMailer. Denk dat je het beste eerst met bestaande bestaande classes moet gaan werken.
Object geörienteerd programmeren is een bepaalde denkwijze, dit leer je niet even in een middagje... Er is genoeg te vinden over OOP, zoek maar is in google. Voor een contact formulier hoef je eigenlijk geen klasse te maken, je kan direct een mail klasse gebruiken, bijv. Gewijzigd op 01/01/1970 01:00:00 door Jan geen
Maar wat Rik zegt: OO is een denkwijze. Zelfs als je klassen gebruikt, wil dat nog niet zeggen dat je volgens deze denkwijze werkt. Daar komt veel meer bij kijken.
Gewijzigd op 01/01/1970 01:00:00 door Pim Vernooij
Als je begint met OOP, doe het dan wel in PHP 5. Want OOP van PHP 4 is echt waardeloos, en dat van PHP 5 is vrij krachtig.
op onderzoek uitgaan!
PHPerik schreef op 22.08.2007 17:36:
Dat ben ik niet met je eens, PHPErik. Om de principes van OO door te krijgen heb je aan PHP4 net zoveel als aan PHP5. Pas als je je gaat bezighouden met de geavanceerdere toepassing van OO in PHP, adviseer ik met PHP5 te beginnen.Als je begint met OOP, doe het dan wel in PHP 5. Want OOP van PHP 4 is echt waardeloos, en dat van PHP 5 is vrij krachtig.
Waarom? Omdat je de geavanceerde OO functionaliteit van PHP5 niet nodig hebt bij het aanleren van de denkwijze.
Gewijzigd op 01/01/1970 01:00:00 door Pim Vernooij
Pim Vernooij schreef op 24.08.2007 14:11:
Dat ben ik niet met je eens, PHPErik. Om de principes van OO door te krijgen heb je aan PHP4 net zoveel als aan PHP5. Pas als je je gaat bezighouden met de geavanceerdere toepassing van OO in PHP, adviseer ik met PHP5 te beginnen.
Waarom? Omdat je de geavanceerde OO functionaliteit van PHP5 niet nodig hebt bij het aanleren van de denkwijze.
Waarom? Omdat je de geavanceerde OO functionaliteit van PHP5 niet nodig hebt bij het aanleren van de denkwijze.
Dan zul je een belangrijk bezwaar zien namenlijk dat voor alle instanties de laatst aangemaakte gebruikt wordt.
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb
TJVB schreef op 24.08.2007 14:19:
Dan moet je eens in php 4 meerdere instanties van 1 class willen maken en die door elkaar gebruiken.
Dan zul je een belangrijk bezwaar zien namenlijk dat voor alle instanties de laatst aangemaakte gebruikt wordt.
Dan zul je een belangrijk bezwaar zien namenlijk dat voor alle instanties de laatst aangemaakte gebruikt wordt.
Laat dat eens in een voorbeeldje zien dan? Want het enige verschil wat ik kan bedenken dat hiermee te maken heeft is het verschil in het omgaan met kopiëren in plaats van verwijzen.
php ben ik eigenlijk al aardig ver mee denk ik, ik moet alles van internet af leren dus gaat het wat trager dan wanneer je een opleiding vindt maar een forum of zo, of marktplaats ding bouwen is gene probleem hehe.
dingen zoals phpbb, invision power board en andere, daarin kom ik vaak vreemde dingen tegen die ik nog niet ken. is dit nu ook OOP gemaakt om het zo maar te noemen of is dat echt diepgaand PHP gebeuren wat ik nog niet ken?
Jelmer schreef op 24.08.2007 14:25:
Laat dat eens in een voorbeeldje zien dan? Want het enige verschil wat ik kan bedenken dat hiermee te maken heeft is het verschil in het omgaan met kopiëren in plaats van verwijzen.
Je hebt gelijk, het had te maken met references. Ik heb het eerder ooit gehad en ben toen meteen overgestapt op php5.
Ik heb er al een streep doorgehaald.
Quote:
Van phpBB en Invision Power Board weet ik het niet, maar kijk anders hier eens. Je kan ervan uit gaan dat dat professionele OOP code is :)dingen zoals phpbb, invision power board en andere, daarin kom ik vaak vreemde dingen tegen die ik nog niet ken. is dit nu ook OOP gemaakt om het zo maar te noemen of is dat echt diepgaand PHP gebeuren wat ik nog niet ken?
de interne zoekfunctie bij de tutorials is niet zo prettig, via google kom je wel vanalles tegen:
http://www.phphulp.nl/php/tutorials/8/302/
http://www.mastercode.nl/artikel/57/
Leuk dat is mijn tutorial :p
TJVB schreef op 24.08.2007 14:19:
Dan moet je eens in php 4 meerdere instanties van 1 class willen maken en die door elkaar gebruiken.
Dan zul je een belangrijk bezwaar zien namenlijk dat voor alle instanties de laatst aangemaakte gebruikt wordt.
De eerste 1,5 jaar dat ik OO programmeerde, deed ik dat in PHP4. Ik weet dus wel waar ik over praat. Jouw probleem gaat over references en is in PHP5 'opgelost' door objecten áltijd als reference mee te geven.Pim Vernooij schreef op 24.08.2007 14:11:
...
Dan moet je eens in php 4 meerdere instanties van 1 class willen maken en die door elkaar gebruiken.
Dan zul je een belangrijk bezwaar zien namenlijk dat voor alle instanties de laatst aangemaakte gebruikt wordt.
Gewijzigd op 01/01/1970 01:00:00 door Pim Vernooij
dankjullie wel voor de snelle reacties en links ga meteen even kijken ^^