The Scope Resolution Operator (also called Paamayim Nekudotayim) or in
   simpler terms, the double colon, is a token that allows access to 
   static,
   constant, and overridden 
   members or methods of a class. 
  
   When referencing these items from outside the class definition, use
   the name of the class.
  
   Paamayim Nekudotayim would, at first, seem like a strange choice for
   naming a double-colon. However, while writing the Zend Engine 0.5
   (which powers PHP 3), that's what the Zend team decided to call it.
   It actually does mean double-colon - in Hebrew!
  
| Example 19-11. :: from outside the class definition | 
<?phpclass MyClass {
 const CONST_VALUE = 'A constant value';
 }
 
 echo MyClass::CONST_VALUE;
 ?>
 | 
 | 
   Two special keywords self and parent
   are used to access members or methods from inside the class definition.
  
| Example 19-12. :: from inside the class definition | 
<?phpclass OtherClass extends MyClass
 {
 public static $my_static = 'static var';
 
 public static function doubleColon() {
 echo parent::CONST_VALUE . "\n";
 echo self::$my_static . "\n";
 }
 }
 
 OtherClass::doubleColon();
 ?>
 | 
 | 
   When an extending class overrides the parents definition of a method,
   PHP will not call the parent's method. It's up to the extended class
   on whether or not the parent's method is called. This also applies to Constructors and Destructors, Overloading, and Magic method definitions.
  
| Example 19-13. Calling a parent's method | 
<?phpclass MyClass
 {
 protected function myFunc() {
 echo "MyClass::myFunc()\n";
 }
 }
 
 class OtherClass extends MyClass
 {
 // Override parent's definition
 public function myFunc()
 {
 // But still call the parent function
 parent::myFunc();
 echo "OtherClass::myFunc()\n";
 }
 }
 
 $class = new OtherClass();
 $class->myFunc();
 ?>
 | 
 |