2 votes

Nommage des fonctions des classes PHP

J'ai des difficultés à nommer la fonction. J'ai une classe et j'ai besoin de 2 fonctions quelque chose comme ci-dessous.

class myclass {
    public function tempclass () {
        echo "default";   
    }
    public function tempclass ( $text ) {
        echo $text;
    }
}

Lorsque j'appelle

tempclass('testing'); // ( called after creating the object )

function tempclass() Comment puis-je avoir 2 fonctions avec le même nom mais des paramètres différents ?

5voto

Jonathan Sampson Points 121800

La surcharge traditionnelle n'est actuellement pas possible en PHP. Au lieu de cela, vous devrez vérifier les arguments passés, et déterminer comment vous souhaitez répondre.

Vérifier func_num_args y func_get_args à ce stade. Vous pouvez utiliser ces deux éléments en interne pour déterminer comment vous devez répondre à l'invocation de certaines méthodes. Par exemple, dans votre cas, vous pourriez faire ce qui suit :

public function tempclass () {
  switch ( func_num_args() ) {
    case 0:
      /* Do something */
      break;
    case 1:
      /* Do something else */
  }
}

Vous pouvez également fournir des valeurs par défaut pour vos arguments et les utiliser pour déterminer comment vous devez réagir :

public function tempclass ( $text = false ) {
  if ( $text ) {
    /* This method was provided with text */ 
  } else {
    /* This method was not invoked with text */
  }
}

0voto

Nick Points 4016

La surcharge n'est pas possible en PHP.

Cependant, pour votre exemple simple ci-dessus, quelque chose comme ceci fonctionnerait :

class myclass {
    public function tempclass ($text='Default') {
        echo $text;
    }
}

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