Obj in class function?
Wat doet het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
public function add_deck(Deck $objDeck) {
$this->cards = array_merge($this->cards, $objDeck->cards);
return $this;
}
public function add_card(Card $objCard) {
array_push($this->cards, $objCard);
return $this;
}
?>
public function add_deck(Deck $objDeck) {
$this->cards = array_merge($this->cards, $objDeck->cards);
return $this;
}
public function add_card(Card $objCard) {
array_push($this->cards, $objCard);
return $this;
}
?>
Die dingen hoe werkt dat?
Snap niet goed wat het doet...
Gewijzigd op 01/01/1970 01:00:00 door Manaus
PHP OOP
Het lijkt erop dat het methods uit een bepaalde klasse zijn. De een voegt twee arrays samen en de ander voegt een item aan een array toe. Maar hoe dat verder in relatie tot de klasse staat is hier natuurlijk niet uit te halen.
Het lijkt erop dat het methods uit een bepaalde klasse zijn. De een voegt twee arrays samen en de ander voegt een item aan een array toe. Maar hoe dat verder in relatie tot de klasse staat is hier natuurlijk niet uit te halen.
Ik vind die functie niet op de php site:P
Die methods (een functie binnen een klasse) worden uiteraard door de gebruiker zelf geschreven, dat zijn geen bestaande PHP functies...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class lol {
}
class regen{
public function add_card(Card $objCard) {
array_push($this->cards, $objCard);
return $this;
}
}
$lol = new lol();
$regen = new regen();
$regen->add_card($lol);
?>
class lol {
}
class regen{
public function add_card(Card $objCard) {
array_push($this->cards, $objCard);
return $this;
}
}
$lol = new lol();
$regen = new regen();
$regen->add_card($lol);
?>
zou dit dan moeten werken?
Quote:
Probeer het uit zou ik zeggen?!zou dit dan moeten werken?
Dan zul je zien dat dit niet werkt omdat $lol geen instantie is van de klasse Card. En dat is een vereiste van de method add_card()...
stel, je hebt een class gastenboek. Daarin wil je een object van de class gebruiker meegeven als parameter. Wel, dat lukt.
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
33
34
35
36
37
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
33
34
35
36
37
<?
...
$m_gebruiker = new gebruiker();
$m_gebruiker->naam = $_SESSION['login'];
...
$m_gastenboek = new gastenboek();
$m_gastenboek->setBericht ($m_gebruiker, $_POST['bericht'], $_POST['link'], ...);
...
class gebruiker
{
function gebruiker()
{...}
var $naam;
var $ip;
var $email;
...
}
class gastenboek
{
...
function setBericht ($m_gebruiker, $bericht, $link, ...)
{
$this->naam = $m_gebruiker->naam;
$this->ip = $m_gebruiker->ip;
$this->bericht = $bericht;
$geldige_email = $m_gebruiker->isGeldigeEmail(); // zie *
...
}
}
?>
...
$m_gebruiker = new gebruiker();
$m_gebruiker->naam = $_SESSION['login'];
...
$m_gastenboek = new gastenboek();
$m_gastenboek->setBericht ($m_gebruiker, $_POST['bericht'], $_POST['link'], ...);
...
class gebruiker
{
function gebruiker()
{...}
var $naam;
var $ip;
var $email;
...
}
class gastenboek
{
...
function setBericht ($m_gebruiker, $bericht, $link, ...)
{
$this->naam = $m_gebruiker->naam;
$this->ip = $m_gebruiker->ip;
$this->bericht = $bericht;
$geldige_email = $m_gebruiker->isGeldigeEmail(); // zie *
...
}
}
?>
Dan kan je dus alle gegevens van de gebruiker bundelen en in 1 keer meegeven als argument van een method van een andere class. Je krijgt niet alleen de properties mee, maar je kan ook de methods van gebruiker gebruiken. *