Wel of niet declareren private,public,protected in geval...
Ik heb nu deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
include_once("config.php");
include_once("classes/participant.php");
unset($result);
$readParticipant = new Participant();
$result = $readParticipant->getParticipant('Pietje');
echo "De getallen van ".$result[0]." zijn: ".$result[1].",".$result[2].",".$result[3].",".$result[4].",".$result[5].",".$result[6];
echo "<br>";
?>
include_once("config.php");
include_once("classes/participant.php");
unset($result);
$readParticipant = new Participant();
$result = $readParticipant->getParticipant('Pietje');
echo "De getallen van ".$result[0]." zijn: ".$result[1].",".$result[2].",".$result[3].",".$result[4].",".$result[5].",".$result[6];
echo "<br>";
?>
en
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 Participant{
function getParticipant($naam){
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$naam'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
}
?>
class Participant{
function getParticipant($naam){
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$naam'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
}
?>
In meerdere tutorials zie ik uitleg over het declareren van een variabele private, public of protected.
Maar in dit voorbeeld zie ik de noodzaak daarvan niet direct...
Is het erg als je deze declaratie weg laat? Of is het echt werkelijk altijd nodig?
Ofwel, kan iemand uitleggen wat de reden is van het wel doen, of de reden voor het niet perse hoeven doen?
Dit staat helaas net niet uitgelegd in alle tutorials die ik tot nu toe gelezen heb...
Ik ga er van uit dat dit:
public $naam;
dan nog vóór de functie moet komen te staan.
Alvast dank voor de opheldering...
vr gr Eric
Alle variabelen die je gebruikt door je class moet je opgeven.
De manier hoe jij nu de functie gebruikt zal je geen public hoeven te declareren. Omdat het een parameter is en geen property van je class..
Probeer dit maar eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class Participant
{
public $name;
function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$this->name'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
}
$readParticipant = new Participant();
$readParticipant->name = 'Pietje';
$result = $readParticipant->getParticipant();
?>
class Participant
{
public $name;
function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$this->name'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
}
$readParticipant = new Participant();
$readParticipant->name = 'Pietje';
$result = $readParticipant->getParticipant();
?>
Dus als ik het goed begrijp is het dus voor specifiek dit voorbeeld niet perse nodig...
Enig idee of dat in professionele kring ook soms achterwege wordt gelaten dan dus?
Of is in de professionele wereld dit een stricte voorwaarde dat het altijd gedeclareerd wordt?
(bestaat daar een afspraak over?)
Want je hebt nu maar gebruikersnaam in de method.
Wat als je meerdere acties wilt doen?
Bijvoorbeeld:
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
class Participant
{
public $name;
function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$this->name'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
public function updateImage($imageName)
{
mysql_query("UPDATE image_name SET $imageName WHERE naam='$this->name'");
}
}
$readParticipant = new Participant();
$readParticipant->name = 'Pietje';
$result = $readParticipant->getParticipant();
$readParticipant->updateImage($result['id']);
?>
class Participant
{
public $name;
function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='$this->name'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
public function updateImage($imageName)
{
mysql_query("UPDATE image_name SET $imageName WHERE naam='$this->name'");
}
}
$readParticipant = new Participant();
$readParticipant->name = 'Pietje';
$result = $readParticipant->getParticipant();
$readParticipant->updateImage($result['id']);
?>
Voorbeeldje:
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
29
30
31
32
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
29
30
31
32
<?php
class Participant
{
private $name;
function __construct($naam)
{
$this->setNaam($naam);
}
public function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='" . $this->naam . "'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
public function getNaam()
{
return $naam;
}
public function setNaam($naam)
{
$this->naam = ucfirst($naam); // Kijk nu wordt de naam altijd met een hoofdletter.
}
}
$p = new Participant('fRaNk');
?>
class Participant
{
private $name;
function __construct($naam)
{
$this->setNaam($naam);
}
public function getParticipant()
{
$query_numbers_one_person = mysql_query("SELECT naam,a,b,c,d,e,f FROM lotto_users WHERE naam='" . $this->naam . "'");
$array_numbers_one_person = mysql_fetch_row($query_numbers_one_person);
return $array_numbers_one_person;
}
public function getNaam()
{
return $naam;
}
public function setNaam($naam)
{
$this->naam = ucfirst($naam); // Kijk nu wordt de naam altijd met een hoofdletter.
}
}
$p = new Participant('fRaNk');
?>
Maar top jongens! Voor mij is het helder...
Hier kan ik tenminste wat mee voor mijn begripsvorming!
Dankjulliewel!
vr gr Eric
Het is helder.
Frank zijn class gebruikt de functies om de naam te vullen, dit maakt het veiliger. In ons kleine voorbeeld is dit overbodig naar mijn weten.
Ook gebruikt Frank een __construct + een setNaam. Bij het creeren van het object geef je nu meteen mee wat de naam is.
Later zou je de naam nog kunnen wijzigen naar een andere naam.
Principe is duidelijk nu denk ik.