:: is what you call the scope resolution operator.
We use this to access constants and static properties, functions
Here's some code , for lack of better words
<?php class FirstClass{ const EXAMPLE = "I AM CONSTANT"; public static function test(){ echo self::EXAMPLE; } } ?>
Say you wanted to execute the test() method outside the firstClass how would you do it? We use that "scope resolution operator" and it is used as follows:
$a = FirstClass::test();
echo $a;
And then say we write another class extended
<?php class SecondClass extends FirstClass{ public static $staticProperty = "I AM STATIC"; public static function anotherTest(){ echo parent::EXAMPLE; echo self::$staticProperty; } } ?>
Even inside the function anotherTest() we can see that :: used.
Instead of using $this->staticProperty; we said self::$staticProperty, and this is because the staticProperty is actually a static property with the static keyword used. :)
Okay hope this is clear, so before closing can I ask a question. How would you access function anotherTest() from outside the class 'secondClass'?
Answer is
echo SecondClass::anotherTest();
Please note when you echo it prints out what is returned from that function. in this case it will return "I AM CONSTANT" AND "I AM STATIC"
Thanks for reading !
Top comments (0)