4 votes

Référence à des variables de classe comme paramètres par défaut dans une fonction PHP

Je voudrais avoir une fonction dans ma classe qui a un paramètre par défaut afin que l'on puisse omettre l'argument si nécessaire. Je veux que le paramètre par défaut soit une variable stockée dans ma classe ;

Bonjour, pourquoi cela montre-t-il des messages d'erreur dans Aptana ?

class property{
    private $id;
    function load_data($id = $this->id){
        //...blah blah blah
    }
}

Dois-je plutôt utiliser

class property{
    static $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}

?

Merci pour votre aide

9voto

John Conde Points 102874

Je suis presque sûr que tu ne peux pas faire ce que tu cherches. Au lieu de cela, vous devriez simplement vérifier si l'argument a une valeur, et s'il n'en a pas, assigner la valeur par défaut qui est la propriété de l'objet.

class property{
    private $id;
    function load_data($id = null){
        $id = (is_null($id)) ? $this->id : $id;
    }
}

2voto

Mike Purcell Points 12082

Tu pourrais faire ça :

class property
{
    private $id;

    function load_data($id = null){

        if (is_null($id)) {
            $id = $this->id;
        }

        //...blah blah blah
    }
}

0voto

Anthony Points 9

Je sais que c'est une vieille question mais je suis tombé dessus en cherchant le même genre de chose et la réponse est oui vous pouvez le faire, tant que vous le définissez comme une constante :

class property{
    const $id;
    function load_data($id = self::id){
        //...blah blah blah
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X