$this bij Include vanuit een classe

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan Dam

Johan Dam

02/07/2010 10:18:38
Quote Anchor link
Yoo, had een klein dingetje waar ik zo niet uit kom,

Als je vanuit een classe een pagina include, dan kan je vanuit die pagina de $this variabele gebruiken. Ik zou liever zien dat dit niet zo was, maar helaas, unset($this) werkt niet, (al lijkt me dat sowieso een slecht idee, maar vooruit)

even een voorbeeldje,
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
<?php
classe foo {
    private $private_var;
    
    public function __construct(){
        $this->private_var = 'erg geheim';
    }


    public function include_pagina($pagina){
        unset($this);
        include($pagina);
    }
}

?>


en dan in de pagina iets van
echo $this->private_var;
wat mooi de tekst 'erg geheim' geeft.

Ik weet zo geen andere oplossing dan in de pagina zelf unset($this) te gebruiken, maar mooier zou zijn als dat in de classe kon.

Weet iemand hier zo een mooie oplossing voor?
Gewijzigd op 02/07/2010 10:19:31 door Johan Dam
 
PHP hulp

PHP hulp

06/11/2024 00:11:07
 
Arjan -

Arjan -

02/07/2010 10:38:47
Quote Anchor link
unset($this) is wel heel slecht inderdaad. Maar waarom heb je bezwaar tegen het kunnen gebruiken van $this in de pagina die geinclude is?
 
Johan Dam

Johan Dam

02/07/2010 10:52:13
Quote Anchor link
de code van $pagina kan van alles bevatten, dus om foutjes te voorkomen door onbedoelde wijzigingen aan de classe, is het handig dat de classe helemaal niet te gebruiken is op die pagina,

Het is op zich niet zo heel erg als het zo blijft, maar het zou wel handig kunnen zijn
 
Piet Verhagen

Piet Verhagen

02/07/2010 12:58:22
Quote Anchor link
Als je van te voren niet weet wat er is een bestand staat dat je gaat include, dan kun je je eigen afvragen of je wel goed bezig bent.
 
Johan Dam

Johan Dam

02/07/2010 13:11:40
Quote Anchor link
dat zit wel goed hoor, piet, ;)
 
Jelmer -

Jelmer -

02/07/2010 13:31:48
Quote Anchor link
Maak een gewone functie erbij (en niet een method) want die hebben geen context ($this of self) Eventueel doe je wat leuks met create_function.
 
Johan Dam

Johan Dam

02/07/2010 14:16:02
Quote Anchor link
hmm, die create_function kan inderdaad wel s de uitkomst bieden, daar had k nog niet aan gedacht, goeie tip!
 



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.