58 votes

Quelle est la différence entre une méthode et une fonction ?

Quelle est la différence entre une méthode et une fonction ? Est-ce qu'une méthode renvoie une valeur alors qu'une fonction ne le fait pas ?

1 votes

Il n'y a pas vraiment de différence technique au sein de php. Mais dans mon esprit, une fonction est une chose plus mathématique ; elle ne change pas d'état, elle renvoie seulement une valeur (comme f(x) = 2x). Une méthode modifie l'état (comme la sortie de "hello world") et peut retourner une valeur. Il s'agit en fait d'une copie de : stackoverflow.com/questions/43777/ J'espère que cela répond à votre question.

0 votes

La fonction a une signification dans la plupart des langages de programmation sans rapport avec sa signification en mathématiques.

156voto

Sarfraz Points 168484

La méthode est en fait une fonction utilisé dans le contexte d'une classe/objet.

Lorsque vous créez une fonction à l'extérieur d'une classe ou d'un objet, vous pouvez lui donner le nom de fonction mais lorsque vous créez une fonction à l'intérieur d'une classe, vous pouvez l'appeler une méthode .

class foo{
   public function bar(){ // a method
     ........
   }
}

function bar(){  // a function not part of an object
}

Un objet peut donc avoir des méthodes (fonctions) et des propriétés (variables).

4 votes

Les méthodes doivent être appelées comme suit $this->bar() si elle se trouve dans cette classe, sinon vous devez d'abord instancier la classe et ensuite l'appeler en utilisant l'instance de la classe (objet), comme suit : $foo->bar() . Pour les fonctions, il s'agit simplement de bar() .

8voto

Jonatan Points 88

Ces mots ne sont pas opposés l'un à l'autre mais décrivent plutôt deux aspects possibles d'un sous-programme. Une tentative de définition des mots :

Soubroutine : Un ensemble d'instructions qui peuvent être utilisées plusieurs fois dans le même programme.

Fonction : Une sous-routine qui renvoie une valeur. Dérivé des fonctions en mathématiques.

Méthode : Une sous-routine qui appartient à un objet ou à une classe. Peut être une fonction.

J'ai tendance à utiliser le mot "fonction" pour chaque sous-programme qui n'a pas d'effets secondaires mais renvoie une valeur claire et le mot "méthode" pour chaque sous-programme qui a un effet secondaire.

0 votes

Il s'agit des définitions de sous-routine et de fonction telles qu'elles sont utilisées dans Fortran, l'un des premiers langages de haut niveau. C'était il y a très longtemps. Je ne connais pas de langage contemporain qui utilise "subroutine" comme mot-clé. Le langage C utilisait "fonction" pour les deux, et c'est ainsi que la plupart des autres langages utilisent ce mot. (Vous êtes OK pour méthode).

0 votes

Mais la question ne dit rien sur les mots-clés. C'est une question de terminologie sur la façon de décrire un code en langage parlé. Je peux vous recommander l'article de wikipedia fr.wikipedia.org/wiki/Subroutine

0 votes

@MarcRochkind Le (Visual) Basic ne définit-il pas les fonctions en utilisant le mot-clé Sub ?

6voto

user13733 Points 176

La différence entre les expressions "méthode" et "fonction" est qu'une "méthode" est une fonction membre d'une classe, alors qu'une fonction autonome ne l'est pas, et une fonction autonome existe généralement dans un contexte global.

2voto

Furqan Points 3015

Les deux sont utilisés de manière interchangeable, mais la fonction est la terminologie utilisée dans les langages structurels et la méthode est la terminologie utilisée dans les langages orientés objet. En outre, les méthodes existent au sein des objets, tandis que les fonctions peuvent également exister sans objet.

2voto

Milan Saha Points 81

La fonction est un terme générique utilisé dans l'approche de programmation procédurale, tandis que la méthode est un terme utilisé dans l'approche de programmation orientée objet pour définir une propriété de classe.

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