Was ist der Unterschied zwischen einer Methode und einer Funktion?

Lesezeit: 3 Minuten

Benutzer-Avatar
Amol

Was ist der Unterschied zwischen einer Methode und einer Funktion? Gibt eine Methode einen Wert zurück und eine Funktion nicht?

  • Es gibt wirklich keinen technischen Unterschied innerhalb von PHP. Aber meiner Meinung nach ist eine Funktion eher mathematisch; es ändert den Zustand nicht, gibt nur einen Wert zurück (wie f(x) = 2x). Eine Methode ändert den Zustand (wie die Ausgabe von „Hallo Welt“) und kann einen Wert zurückgeben. Dies ist im Grunde ein Dupe von: stackoverflow.com/questions/43777/… Hoffentlich beantwortet das Ihre Frage.

    – Tyler

    30. Januar 2011 um 6:58 Uhr


  • Funktion hat in den meisten Programmiersprachen eine Bedeutung, die nichts mit ihrer Bedeutung in der Mathematik zu tun hat.

    – Mark Rochkind

    16. Mai 2013 um 17:56 Uhr


Benutzer-Avatar
Sarfraz

Methode ist eigentlich eine Funktion verwendet in der Kontext einer Klasse/eines Objekts.

Wenn Sie eine Funktion außerhalb einer Klasse/eines Objekts erstellen, können Sie sie a nennen Funktion aber wenn Sie eine Funktion innerhalb einer Klasse erstellen, können Sie sie a nennen Methode.

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

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

Ein Objekt kann also Methoden (Funktionen) und Eigenschaften (Variablen) haben.

  • Methoden müssen so aufgerufen werden $this->bar() Wenn Sie sich innerhalb dieser Klasse befinden, müssen Sie die Klasse andernfalls zuerst instanziieren und sie dann mithilfe der Klasseninstanz (Objekt) wie folgt aufrufen: $foo->bar(). Für Funktionen ist es einfach bar().

    – bekanntasilya

    3. November 2012 um 20:51 Uhr

Benutzer-Avatar
Jonatan

Die Wörter stehen nicht im Gegensatz zueinander, sondern beschreiben zwei mögliche Aspekte eines Unterprogramms. Ein Versuch, die Wörter zu definieren, folgt:

Subroutine: Eine Reihe von Anweisungen, die mehrmals im selben Programm verwendet werden können.

Funktion: Eine Unterroutine, die einen Wert zurückgibt. Abgeleitet von Funktionen in der Mathematik (Wikipedia).

Methode: Eine Unterroutine, die zu einem Objekt oder einer Klasse gehört. Könnte eine Funktion sein.

Ich neige dazu, das Wort “Funktion” für jede Subroutine zu verwenden, die keine Seiteneffekte hat, aber einen eindeutigen Wert zurückgibt, und das Wort “Methode” für jede Subroutine, die eine Nebenwirkung hat.

  • Dies sind die Definitionen von Subroutine und Funktion, wie sie in Fortran, einer der ersten Hochsprachen, verwendet werden. Das ist sehr lange her. Mir fällt keine zeitgenössische Sprache ein, die „Subroutine“ als Schlüsselwort verwendet. Die C-Sprache verwendete „Funktion“ für beide, und so verwenden die meisten anderen Sprachen das Wort. (Sie sind OK für Methode.)

    – Mark Rochkind

    16. Mai 2013 um 17:58 Uhr

  • Aber die Frage sagt nichts über Schlüsselwörter aus. Es ist eine Frage der Terminologie, wie man Code in gesprochener Sprache beschreibt. Ich kann den Wikipedia-Artikel empfehlen en.wikipedia.org/wiki/Subroutine

    – Jonatan

    24. Mai 2013 um 9:55 Uhr

  • @MarcRochkind definiert keine (Visual) Basic-Funktionen mit dem Schlüsselwort Sub?

    – Byson

    8. Oktober 2014 um 10:34 Uhr

  • Basic ist weit entfernt von einer zeitgenössischen Sprache. Es ist über 45 Jahre alt.

    – Mark Rochkind

    8. Oktober 2014 um 13:41 Uhr

  • ich finde diese archaischen begriffe auch im jahr 2019 noch nützlich.

    – Randy L

    6. Juni 2019 um 17:21 Uhr

Benutzer-Avatar
Ursprung

Der Unterschied zwischen den Ausdrücken “Methode” und “Funktion” besteht darin, dass eine “Methode” eine Mitgliedsfunktion einer Klasse ist, während eine eigenständige Funktion dies nicht tut, und eine eigenständige Funktion normalerweise im globalen Kontext existiert.

Beide werden synonym verwendet, aber Funktion ist die Terminologie, die in strukturellen Sprachen verwendet wird, und Methode ist die Terminologie, die in objektorientierten Sprachen verwendet wird. Auch Methoden existieren innerhalb von Objekten, während Funktionen auch ohne Objekte existieren können.

Funktion ist ein allgemeiner Begriff, der im prozeduralen Programmieransatz verwendet wird, während Methode ein Begriff ist, der im objektorientierten Programmieransatz verwendet wird, um eine Klasseneigenschaft zu definieren.

Benutzer-Avatar
Bohemien

Wir definieren die Methode innerhalb der Klasse, wir definieren die Funktion außerhalb der Klasse, die Funktion ist nicht Teil der Klasse

Benutzer-Avatar
Piyush Mattoo

In einer Zeile ist eine Methode eine Funktion, aber eine Funktion ist nicht unbedingt eine Methode. Der Unterschied besteht darin, dass eine Methode verwendet wird, um Funktionen zu beschreiben, die in Klassen definiert sind, die mit Instanzen dieser Klassen verwendet werden.

package {class Example {
  public function iAmAMethod():void {
     addEventListener("listenerFunctionIsNotAMethod", function(event:Event):void {
        trace("inline function, yay!");
     });
  }

}

1333700cookie-checkWas ist der Unterschied zwischen einer Methode und einer Funktion?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy