82
votes

What are the different ways where we can use object operators -> in PHP?

5
Why is this closed? People are upvoting this question 8 years later, and there are sufficient answers to the question. Clearly, it's pretty easy to see what's being asked here.DeltaFlyer
@DeltaFlyer Vote for reopening this questionStephan

5 Answers

118
votes

PHP has two object operators.

The first, ->, is used when you want to call a method on an instance or access an instance property.

The second, ::, is used when you want to call a static method, access a static variable, or call a parent class's version of a method within a child class.

29
votes

When accessing a method or a property of an instantiated class

class SimpleClass
{
    // property declaration
    public $var = 'a default value';

    // method declaration
    public function displayVar() {
        echo $this->var;
    }
}

$a = new SimpleClass();
echo $a->var;
$a->displayVar();
11
votes

Call a function:

$foo->bar();

Access a property:

$foo->bar = 'baz';

where $foo is an instantiated object.

4
votes

It is used when referring to the attributes of an instantiated object. e.g:

class a {
    public $yourVariable = 'Hello world!';
    public function returnString() {
        return $this->yourVariable;
    }
}

$object = new a();
echo $object->returnString();
exit();
1
votes

"->" operator is the PHP related callable content. always use to call an instance method and access instance.

"::" scope operator is used for the instance that is used for calling the static method and constant it's very different with::

It's a proper reply to them, I have got new knowledge.

Please check the name conflicts for the above different operator.