Method oproepen van child class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Francoi gckx

Francoi gckx

07/01/2014 12:52:44
Quote Anchor link
Ik heb een method voor registreren in parent class,
nu wil ik als de checkbox van subscribe is aangevinkt
dat hij dan naar een method gaat in de child class

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if(empty($subscribe) === false && $subscribe == "yes")
                    {
                        $naam = $voornaam.' '. $achternaam;
                        $zoektermen = '';
                        $this->subscribe($naam, $email, $zoektermen, $id);
                    }    


Met 'subscribe' method uit de child class
volgens mij werkt dit niet
Gewijzigd op 07/01/2014 12:53:09 door Francoi gckx
 
PHP hulp

PHP hulp

29/03/2024 13:52:26
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/01/2014 12:55:50
Quote Anchor link
zolang de method subscribe() niet private is dan werkt dat gewoon ...

Zoals je het uitlegt lijkt het of je de boel omdraait.. Je moet wel met een instantie werken van de child-class en dan kun je methods gebruiken van de parent class.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

class parent
{
}


class child extends parent
{
    public subscribe()
    {

        echo 'hoi hoi';
    }
}


// dit werkt:
$a = new child(); // maakt een nieuwe instantie van child
$a->subscribe();

// dit werkt NIET:
$a = new parent(); // maakt een nieuwe instantie van parent
$a->subscribe();

?>
Gewijzigd op 07/01/2014 13:01:08 door Frank Nietbelangrijk
 
Francoi gckx

Francoi gckx

07/01/2014 13:00:09
Quote Anchor link
Nou de registratie method zit in een 'users' class en subscribe zit in een extended 'gasten' class
zodat subscribe zowel voor voor registreerders is als de niet geregistreerde

Alleen ik heb laatste toegevoegde id nodig om gelijk te subscriben voor een user dus ik wil niet de 'gasten' class in dit geval buiten de class instantieren

Toevoeging op 07/01/2014 13:04:40:

Dus dan word het zo
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$a = new child();
$a->subscribe($naam, $email, $zoektermen, $id);


Ik vind het wel een beetje raar om een child class the instantieren in een parent class of is dat gebruikelijk (ie mag dat)?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/01/2014 13:05:44
Quote Anchor link
is gasten ook extended van users?

dus zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class users
{
    public registratie()
    {
    }
}


class gasten extends users
{
    public subscribe()
    {
    }
}


class xxxx extends gasten
{
}
Gewijzigd op 07/01/2014 13:07:24 door Frank Nietbelangrijk
 
Francoi gckx

Francoi gckx

07/01/2014 13:06:20
Quote Anchor link
Toevoeging op 07/01/2014 13:07:09:

Nee subscribe zit in gasten
Gewijzigd op 07/01/2014 13:07:21 door Francoi gckx
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/01/2014 13:08:39
Quote Anchor link
lol ja duidelijk. dan heeft xxxx dus al de beschikking over de functies subscribe() en over registratie() mits deze functies niet private zijn.
 
Francoi gckx

Francoi gckx

07/01/2014 13:10:57
Quote Anchor link
Ok dus wat ik gegeven had zou moeten werken?

$this->subscribe($naam, $email, $zoektermen, $id);
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/01/2014 13:11:22
Quote Anchor link
ja.
 
Francoi gckx

Francoi gckx

07/01/2014 13:11:38
Quote Anchor link
Ik was subscribe vergeten als argument

Maar ik krijg alsnog een error

Fatal error: Call to undefined method Users::subscribe()

Toevoeging op 07/01/2014 13:18:56:

En ja subscribe is public
Gewijzigd op 07/01/2014 13:17:58 door Francoi gckx
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.