Amol
Amol

Reputation: 765

What is a difference between a method and a function?

What is the difference between a method and a function? Is it that a method returns a value and a function doesn't?

Upvotes: 61

Views: 48075

Answers (8)

Md Masud
Md Masud

Reputation: 2711

Method and function are same things but their context are different. A function inside a class called a method. like:

class foo{
   function bar(){ //code }       

}

in this case bar() is a method. to execute this method you must create an object of class foo and call it like $foo->bar();

You can write a function out of class .

bar(){ //code }

you can call it bar()

Upvotes: 0

Jonatan
Jonatan

Reputation: 1196

The words are not opposed to each other but rather describes two possible aspects of a subroutine. An attempt to define the words follows:

Subroutine: A set of instructions that can be used several times in the same program.

Function: A subroutine that returns a value. Derived from functions in mathematics (wikipedia).

Method: A subroutine that belongs to an object or a class. Could be a function.

I tend to use the word "function" for every subroutine that has no side effects but returns one clear value and the word "method" for every subroutine that has a side effect.

Upvotes: 8

Sarfraz
Sarfraz

Reputation: 382841

Method is actually a function used in the context of a class/object.

When you create a function outside of a class/object, you can call it a function but when you create a function inside a class, you can call it a method.

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

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

So an object can have methods (functions) and properties (variables).

Upvotes: 166

J.Rob
J.Rob

Reputation: 436

We define method inside class , we define function out side class, function is not part of class

Upvotes: 1

Milan Saha
Milan Saha

Reputation: 935

Function is a generic term to be used in procedural programming approach where as Method is a term to be used in Object oriented programming approach to define a class property.

Upvotes: 2

origo
origo

Reputation: 533

The difference between the expressions "method" and "function" is that a "method" is a member function of a class, whereas a standalone function does not, and a standalone function usually exists in global context.

Upvotes: 7

Furqan Hameedi
Furqan Hameedi

Reputation: 4400

Both are used interchangeably, but function is the terminology used in structural languages and method is the terminology used in Object Oriented Langauages. Also methods exists within objects while functions can exist without objects as well.

Upvotes: 2

Piyush Mattoo
Piyush Mattoo

Reputation: 16143

In one line, a method is a function but a function is not necessarily a method. The difference is that a method is used to describe functions defined in classes that are used with instances of those classes.

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

}

Upvotes: 0

Related Questions