Naam van callende class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Quote Anchor link
Hallo,
Is het mogelijk dat als ik 2 classes heb, een beetje als dit(in het "echte" script is dit veel uitgebreider):
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
<?php
class ClassEen
{
    public function __construct($classtwee)
    {

        $classtwee->do_stuff();
    }
}


class ClassTwee
{
    public function __construct()
    {

        $classeen = new ClassEen($this);
    }

    
    public function do_stuff()
    {

        echo 'Classnaam: ';
    }
}

?>

ik in do_stuff de naam ClassEen kan laten zien ZONDER iets aan ClassEen te veranderen qua variabelen meesturen?
 
PHP hulp

PHP hulp

24/04/2024 22:51:08
 
TJVB tvb

TJVB tvb

29/07/2009 08:14:00
Quote Anchor link
Volgens mij is dat niet mogelijk. Je zult dan toch iets mee moeten geven.
 
Jelmer -

Jelmer -

29/07/2009 09:15:00
Quote Anchor link
Laat me raden: je probeert een soort protected functie te maken die alleen aan te roepen is vanuit bepaalde classes. En om dat af te dwingen (de functie moet immers public zijn anders kan het niet in PHP) wil je controleren welke class hem aanroept.

Het kan, een beetje, met debug_backtrace. Je kan kijken of een van de door jou goedgekeurde classes in die array voorkomt (in de callstack) en dan toegang geven. Maar debug_backtrace is traag, en ik kan deze hack niet aanraden.

Wat is het echte probleem? Wat zijn de namen van de classes en de methods waar het om gaat? Misschien is er wel een veel mooiere oplossing in de vorm van een andere architectuur.
 
Quote Anchor link
Ik heb al een andere oplossing, het was alsnog niet nodig om de naam van de class te hebben, toch bedankt voor de hulp
 
Ed

Ed

31/07/2009 00:10:00
Quote Anchor link
Er is ook een functie voor get_class
Gewijzigd op 01/01/1970 01:00:00 door Ed
 
TJVB tvb

TJVB tvb

31/07/2009 08:45:00
Quote Anchor link
Maar dan moet je de class wel meegeven en dat is juist niet wat teuneboon wilde.
 
Ed

Ed

31/07/2009 23:31:00
Quote Anchor link
TJVB schreef op 31.07.2009 08:45:
Maar dan moet je de class wel meegeven en dat is juist niet wat teuneboon wilde.


Zonder parameter wordt gewoon de huidige class worden gegeven, kan trouwens ook gewoon met $this.
 



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.