237

Possible duplicate:
where we use object operator “->” in php
Reference - What does this symbol mean in PHP?

I see these in PHP all the time but I don't have a clue as to what they actually mean. What does -> do and what does => do. And I'm not talking about the operators. They're something else, but nobody seems to know...

horcrux
  • 6,493
  • 6
  • 27
  • 40
Willy Keatinge
  • 2,395
  • 3
  • 12
  • 4

4 Answers4

362

The double arrow operator, =>, is used as an access mechanism for arrays. This means that what is on the left side of it will have a corresponding value of what is on the right side of it in array context. This can be used to set values of any acceptable type into a corresponding index of an array. The index can be associative (string based) or numeric.

$myArray = array(
    0 => 'Big',
    1 => 'Small',
    2 => 'Up',
    3 => 'Down'
);

The object operator, ->, is used in object scope to access methods and properties of an object. It’s meaning is to say that what is on the right of the operator is a member of the object instantiated into the variable on the left side of the operator. Instantiated is the key term here.

// Create a new instance of MyObject into $obj
$obj = new MyObject();
// Set a property in the $obj object called thisProperty
$obj->thisProperty = 'Fred';
// Call a method of the $obj object named getProperty
$obj->getProperty();
Emile Bergeron
  • 16,148
  • 4
  • 74
  • 121
zafus_coder
  • 4,013
  • 2
  • 11
  • 13
66

-> is used to call a method, or access a property, on the object of a class

=> is used to assign values to the keys of an array

E.g.:

    $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34, 1=>2); 

And since PHP 7.4+ the operator => is used too for the added arrow functions, a more concise syntax for anonymous functions.

Shaedo
  • 264
  • 3
  • 11
Sivagopal Manpragada
  • 1,444
  • 13
  • 33
52

=> is used in associative array key value assignment. Take a look at:

http://php.net/manual/en/language.types.array.php.

-> is used to access an object method or property. Example: $obj->method().

DWright
  • 9,152
  • 4
  • 35
  • 53
27

->

calls/sets object variables. Ex:

$obj = new StdClass;
$obj->foo = 'bar';
var_dump($obj);

=> Sets key/value pairs for arrays. Ex:

$array = array(
    'foo' => 'bar'
);
var_dump($array);
Samuel Cook
  • 16,076
  • 6
  • 48
  • 62