Var van extended class wordt niet doorgegeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

Ervaren C#.NET programmeur

Functieomschrijving Voor een moderne werkgever in regio Prinsenbeek zijn wij op zoek naar een ervaren C#.NET programmeur die graag de uitdaging aangaat. Je houdt je bezig met het ontwikkelen van maatwerk webapplicaties voor diverse klanten, waarbij complexe processen optimaal worden ondersteund. Verder ziet jouw takenpakket er als volgt uit: Ontwikkelen en onderhouden van C#.NET-applicaties; Schrijven van hoogwaardige, herbruikbare codes; Schrijven van technische documentatie en gebruikershandleidingen; Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen; Troubleshooten en oplossen van bugs in softwaretoepassingen; Werken met databases en dataopslagoplossingen; Implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens. Bedrijfsprofiel

Bekijk vacature »

- -

- -

14/01/2009 15:26:00
Quote Anchor link
Goedenmiddag,

Ik ben bezig met een projectje, en hier zitten een aantal classen in.

Nou heb ik oa. het volgende stukje code (ff gestript):
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
24
25
26
27
28
29
30
31
32
33
34
<?php
class fvCommunityNewsAdmin {
    
    /**
     *        @var object $_adminHandler The admin data handler.
     */

    protected $_adminHandler;
    
    /**
     *        Constructor
     *        @version 1.0
     *        @since 2.0
     */

    public function __construct() {
        require_once FVCN_DIR . '/scripts/admin-handler.php';
        $this->_adminHandler = new fvCommunityNewsAdminHandler();
        
        $this->adminPageSubmissions();
    }

    
    /**
     *        The Submissions Moderation page.
     *        @version 1.0
     *        @since 2.0
     */

    public function adminPageSubmissions() {
        require_once FVCN_DIR . '/scripts/admin-submissions.php';
        $adminPage = new fvCommunityNewsAdminPageSubmissions();
    }
    
    
}


?>

en de volgende class (ook hier heb ik 't nodige weggehaald):
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
<?php
class fvCommunityNewsAdminPageSubmissions extends fvCommunityNewsAdmin {
    
    /**
     *        Constructor
     *        @version 1.0
     *        @since 2.0
     */

    public function __construct() {
        if (!current_user_can('moderate_comments'))
            exit;
        
        // dit geeft NULL als result
        echo $this->_adminHandler;
    }

?>

Het probleem is nu da de var $_adminHandler niet wordt doorgegeven naar deze class (fvCommunityNewsAdminPageSubmissions). Een var dump van $this in de constructor levert het volgende op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
object(fvCommunityNewsAdminPageSubmissions)#119 (1) {
  ["_adminHandler:protected"]=>
  NULL
}


Heeft iemand een idee hoe dit komt, en misschien een aantal tips om dit op te lossen? Alvast bedankt!
 
PHP hulp

PHP hulp

20/04/2024 10:24:34
 
Bo az

Bo az

14/01/2009 15:29:00
Quote Anchor link
In je overerving overschrijf je de constuctor, daardoor wordt de constructor van de parent niet meer uitgevoerd. Wil je dit oplossen zal je parent::__construct() moeten aanroepen in je child klasse.
 
Joren de Wit

Joren de Wit

14/01/2009 15:35:00
Quote Anchor link
Dat is precies zoals je zou verwachten. Als je een instantie van de child aanmaakt, wordt enkel de constructor van de child uitgevoerd niet die van de parent.

Als je wilt dat ook de constructor van de parent uitgevoerd wordt, zul je dat dus expliciet moeten aanroepen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public function __construct()
{

    parent::__construct();
}

?>

In jouw geval wordt $_adminHandler nog niet gevuld dus is hij nog leeg. Precies zoals de var_dump laat ziet...
 
- -

- -

14/01/2009 15:38:00
Quote Anchor link
Oke, nu werkt het wel.

Hartstikke bedankt!
 



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.