Object Oriented Programming -> Operator [duplicate

2019-06-14 21:14发布

问题:

Possible Duplicate:
Reference - What does this symbol mean in PHP?

So I've been reading through the book PHP Solutions, Dynamic Web Design Made Easy by David Powers. I read through the short section on Object Oriented PHP, and I am having a hard time grasping the idea of the -> operator. Can anyone try to give me a solid explanation on the -> operator in OOP PHP?

Example:

$westcost = new DateTimeZone('America/Los_Angeles');
$now->setTimezone($westcoast);

Also,a more general example:

$someObject->propertyName

回答1:

The -> operator in PHP refers to either a function or a variable inside a class.

<?php
    class Example {
        public $variableInClass = "stringContent";
        public function functionInClass() {
            return "functionReturn";
        }
    }

    $example = new Example();
    var_dump($example->variableInClass); //stringContent
    var_dump($example->functionInClass()); //functionReturn
?>

Do note that if we're talking about static classes (different purpose), you use :: instead:

<?php
    class Example {
        public static $variableInClass = "stringContent";
        public static function functionInClass() {
            return "functionReturn";
        }
    }

    var_dump($example::$variableInClass); //stringContent
    var_dump($example::functionInClass()); //functionReturn
?>


回答2:

$someObject->propertyName can be read as:

return value stored in propertyName from object $someObject

$someObject->methodName() can be read as:

execute methodName from object $someObject



回答3:

Classes and objects 101:

A class is defined as such:

class MyClass {

   public $value1;

   public function getValue() {

       return $this->value;

   }

}

We now defined a class with a single property, and a single function. To use these, we need to create an 'instance' of this object:

$myObject = new MyClass();

To use the property or function, we use the -> operator:

echo $myObject->value1;
echo $myObject->getValue();

Put a little bit more abstractly.. the function getValue is defined in this object. By using the -> operator on an instance of our class, what PHP does is effectively just call the function, just like any other function.. but before it gets called $this is assigned to the current object.

Hope this helps, if not.. I would simply recommend reading about OOP basics.



标签: php oop