function voor ophalen van standaard args in een functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Erik Van woerden

Jan Erik Van woerden

03/02/2011 00:10:26
Quote Anchor link
Hallo,

Ik ben bezig met een framework. Nu wil ik graag een class kunnen ontleden.
Ik heb al de functie get_class_methods() en die in een foreach gooien.
Maar is het dan ook mogelijk om alle args van een functie op te halen.
Bijvoorbeeld als je de functie my_function($arg, $arg2) hebt.
Dat je dan een functie hebt die zegt dat er 2 args zijn?

Alvast bedankt.
 
PHP hulp

PHP hulp

22/12/2024 08:35:01
 

03/02/2011 00:13:04
Quote Anchor link
func_get_args
Waarvoor wil je dit?
 
Jan Erik Van woerden

Jan Erik Van woerden

03/02/2011 00:16:53
Quote Anchor link
Ik ben een framework aan het maken voor Wordpress.
En met de class voegt alle functies toe met add_action() maar je moet ook het aantal args invullen (BIj sommige acties is het belangrijk om het aantal args te vergroten.) Dat moet je dan duidelijk aangeven.

Toevoeging op 03/02/2011 00:18:14:

Dit is trouwens niet wat ik bedoel XD
Ik wil buiten de func_get_args kunnen opvragen zonder de functie uit te laten voeren.
 
Jelmer -

Jelmer -

06/02/2011 13:32:34
Quote Anchor link
Ik denk dat het wel kan via de reflection API.

Jep, het kan:
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
<?php

class X
{
    public function actionX($a, $b, $c)
    {
        
    }

    
    public function actionY($a)
    {
        
    }

    
    public function actionZ($a, $b = null)
    {
        
    }
}


$class = new ReflectionClass('X');
$methods = $class->getMethods();

foreach ($methods as $method)
{

    echo $method->name . ":\n";
    foreach ($method->getParameters() as $param)
        echo $param->name . "\n";
}


?>
 
Kris Peeters

Kris Peeters

07/02/2011 10:46:31
Quote Anchor link
Oh, cool. Die moet ik onthouden.
 



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.