downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  

<VisibilityStatic Keyword>
Last updated: Sat, 29 Oct 2005

Scope Resolution Operator (::)

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-10. :: from outside the class definition

<?php
class 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-11. :: from inside the class definition

<?php
class 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-12. Calling a parent's method

<?php
class 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();
?>


add a note add a note User Contributed Notes
Scope Resolution Operator (::)
There are no user contributed notes for this page.




<VisibilityStatic Keyword>
Last updated: Sat, 29 Oct 2005
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://phpbuilder.com/
Last updated: Tue Nov 1 20:20:59 2005 EST
Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds | Shared Code Library
Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! | Docs