Related Links : Search Engine Optimization | | Search Engine Marketing | Online Marketing | Freelance Programmer| SEO Thailand | SEO Expert | SEO services | PHP Programmer Thailand | SEO Tutorial | What is SEO |

  Home Our SEO Services SEO Expert Consultant Php Programmer Keyword Suggestion Scripts | Email : sachin {at} jainsachin {dot} com

PHP | Scope Resolution Operator (::) | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



SEO Tools




    Scope Resolution Operator (::)

    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.

    As of PHP 5.3.0, it's possible to reference the class using a variable. The variable's value can not be a keyword (e.g. self, parent and static).

    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 #1 :: from outside the class definition

    <?php
    class MyClass {
        const 
    CONST_VALUE 'A constant value';
    }

    $classname 'MyClass';
    echo 
    $classname::CONST_VALUE// As of PHP 5.3.0

    echo MyClass::CONST_VALUE;
    ?>

    Two special keywords self and parent are used to access members or methods from inside the class definition.

    Example #2 :: 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";
        }
    }

    $classname 'OtherClass';
    echo 
    $classname::doubleColon(); // As of PHP 5.3.0

    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 #3 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();
    ?>

    SEO Tutorial / Articles



    Php / Mysql Tutorial



    Articles



      Other Topics



      SEO by Jainsachin