Het Princiepe OOP
Leer wat het princiepe is van OOP in PHP
Gesponsorde koppelingen
Inhoudsopgave
17 reacties op 'Het Princiepe OOP'
Gesponsorde koppelingen
Wel goed dat zo'n tutorial er is, want dat is toch een vraag waar veel mensen zich mee bezig houden: waarom? :)
Toch nog even een opmerking: OOP heeft imho alleen zin als je met een groot project bezig bent waar je voor langere tijd mee bezig bent en met meerdere mensen. Als je gewoon simpele dingetjes in elkaar flanst, dan heeft het waarschijnlijk meer zin en is het makkelijker om structureel of procedureel te programmeren. OOP is in die gevallen alleen maar onduidelijk.
Toch nog even een opmerking: OOP heeft imho alleen zin als je met een groot project bezig bent waar je voor langere tijd mee bezig bent en met meerdere mensen. Als je gewoon simpele dingetjes in elkaar flanst, dan heeft het waarschijnlijk meer zin en is het makkelijker om structureel of procedureel te programmeren. OOP is in die gevallen alleen maar onduidelijk.
Ik geef je gedeeltelijk gelijk Kasper, ik vond classen en OOP ook onzin, maar ben nu met een site bezig, die nog aardig wat jaartjes moet blijven staan. En ik blijf hem geen jaren onderhouden, dus moet mijn 'opvolger' er toch ook nog wijs uit kunnen worden. En met OOP is het mogelijk een soort handleiding te schrijven, zodat je niet eens PHP hoeft te kennen de site te kunnen gebruiken...
Ik vind dit een mooie en duidelijke tutorial, alleen ik snap eigenlijk het nut niet echt van classes. Je kan toch ook gewoon zoiets doen:
Ik weet dat het script niet klopt, maar het gaat even om het principe. Dit is toch eigenlijk opzich wat handiger, of zie ik dat nu verkeeerd..?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function edit_variabel ($variabele, $nieuwe_inhoud) {
$variabele = $nieuwe_inhoud;
}
function add_new_conent($variabele, $new_content) {
$variabele = $variabele.$new_content;
}
function del_variabele($variabele) {
unset('$' $variabele);
}
$variabele = "Hallo";
echo $variabele. "<br/>\n";
edit_variabel($variabele, 'Hallo, ik ben nu anders');
echo $variabele. "<br/>\n";
add_new_conent($variabele, ', en vager...');
echo $variabele. "<br/>\n";
del_variabele($variabele);
echo $variabele. "<br/>\n";
?>
function edit_variabel ($variabele, $nieuwe_inhoud) {
$variabele = $nieuwe_inhoud;
}
function add_new_conent($variabele, $new_content) {
$variabele = $variabele.$new_content;
}
function del_variabele($variabele) {
unset('$' $variabele);
}
$variabele = "Hallo";
echo $variabele. "<br/>\n";
edit_variabel($variabele, 'Hallo, ik ben nu anders');
echo $variabele. "<br/>\n";
add_new_conent($variabele, ', en vager...');
echo $variabele. "<br/>\n";
del_variabele($variabele);
echo $variabele. "<br/>\n";
?>
Ik weet dat het script niet klopt, maar het gaat even om het principe. Dit is toch eigenlijk opzich wat handiger, of zie ik dat nu verkeeerd..?
Nou zo krijg je dus honderden functies, die allemaal direct benaderd kunnen worden. Bij OOP verzamel je deze functies, en zorg dat je variabelen alleen maar intern kan gebruiken.
Bij OOP benader je een ding (bijvoorbeeld een user klasse) als een "ding" en zo kun je dus meer users inialiseren, en zijn sommige functies en variablen alleen toegekend aan die user. Zo houd je het overzichterlijker, veiliger en makkelijker te behren.
Bij OOP benader je een ding (bijvoorbeeld een user klasse) als een "ding" en zo kun je dus meer users inialiseren, en zijn sommige functies en variablen alleen toegekend aan die user. Zo houd je het overzichterlijker, veiliger en makkelijker te behren.
@jip
Nee, je maakt een framework (klasse) voor een gebruiker object welke eigenschappen een gebruiker heeft en wat een gebruiker allemaal "kan" functionaliteit van het object gebruiker.
De framework, ofwel de klasse kun je inialiseren aan meerdere gebruikers. Voorbeeldje:
Zo heb je dus 4 gebruikers ge-inialiseert en hebben deze 4 gebruikers hun eigenschappen en functionaliteit.
Nee, je maakt een framework (klasse) voor een gebruiker object welke eigenschappen een gebruiker heeft en wat een gebruiker allemaal "kan" functionaliteit van het object gebruiker.
De framework, ofwel de klasse kun je inialiseren aan meerdere gebruikers. Voorbeeldje:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
$jantje = New User($jantjezijnid);
$piet = New User($pietzijnid);
$tim = New User($timzijnid);
$rick = New User($timzijnid);
?>
$jantje = New User($jantjezijnid);
$piet = New User($pietzijnid);
$tim = New User($timzijnid);
$rick = New User($timzijnid);
?>
Zo heb je dus 4 gebruikers ge-inialiseert en hebben deze 4 gebruikers hun eigenschappen en functionaliteit.
Quote:
Je bedoelt dus dat je eigenlijk niet meer met een database hoeft te werken..?
Zo zou je het niet helemaal moeten zien, maar stel je voor dat je de functionaliteit van database-functies in een object zo stoppen (abstractie), je kunt dan in de class User gebruik gaan maken van dat database-object, je kunt een instantie van dit object doorgeven aan de constructor van je andere class; als voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$objDB = new DataBaseLayer();
$objUser = new User( $objDB, 12 );
// In de class User kan dan zoiets staan:
class User
{
var $oDB;
var $intUserID;
// Constructor
function User( &$objDB, $intUserID )
{
$this->oDB = $objDB;
$this->intUserID = $intUserID;
}
function GetUserDetails()
{
$qryDetails = "SELECT * FROM usertable WHERE id=".$this->intUserID;
$resDetails = $this->oDB->Query($qryDetails);
// Etc
}
}
?>
$objDB = new DataBaseLayer();
$objUser = new User( $objDB, 12 );
// In de class User kan dan zoiets staan:
class User
{
var $oDB;
var $intUserID;
// Constructor
function User( &$objDB, $intUserID )
{
$this->oDB = $objDB;
$this->intUserID = $intUserID;
}
function GetUserDetails()
{
$qryDetails = "SELECT * FROM usertable WHERE id=".$this->intUserID;
$resDetails = $this->oDB->Query($qryDetails);
// Etc
}
}
?>
Ik snap ook nog steeds niet hoe heel het OOP principe werkt, maar ik ga het leren.
Ook snap ik het nut niet, je kunt toch ook 3x dezelfde fucntie aanroepen?
Ook snap ik het nut niet, je kunt toch ook 3x dezelfde fucntie aanroepen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function insertuser($username, $pass){
$sql = "INSERT INTO users SET username='".$username."', password='".$password."'";
if($result = mysql_query($sql)){
$message = "U bent toegevoegd";
}
else
{
$message = "U bent niet toegevoegd";
}
return $message;
}
?>
function insertuser($username, $pass){
$sql = "INSERT INTO users SET username='".$username."', password='".$password."'";
if($result = mysql_query($sql)){
$message = "U bent toegevoegd";
}
else
{
$message = "U bent niet toegevoegd";
}
return $message;
}
?>
Het nut van classes ondervind je beter wanneer je programmeert in een taal zoals bv. C# of C++;
In C# kan je hoe dan ook niets doen zonder classes. php is echter een taal die veel soepeler is. Je kan een hoop dingen omzeilen waardoor je OOP strikt gezien niet nodig hebt. OOP is echter een nieuwe manier van denken. Eens je er mee overweg kan, vraag je je af hoe je het ooit zonder kon doen.
Om eerlijk te zijn, in php heb ik voorlopig niet te veel ervaring met OOP, maar ik zal er zeker mee experimenteren en zien of het zinnig is.
In C# kan je hoe dan ook niets doen zonder classes. php is echter een taal die veel soepeler is. Je kan een hoop dingen omzeilen waardoor je OOP strikt gezien niet nodig hebt. OOP is echter een nieuwe manier van denken. Eens je er mee overweg kan, vraag je je af hoe je het ooit zonder kon doen.
Om eerlijk te zijn, in php heb ik voorlopig niet te veel ervaring met OOP, maar ik zal er zeker mee experimenteren en zien of het zinnig is.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Kees Schepers- 8 jaar geleden
- 3.629 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- Overig
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu