Double Colon in PHP:: Usage

Source: Internet
Author: User
Tags access properties getcolor

Note: This blog is reproduced, the source can not be tested (at least for me not to test ...) )

The double-colon operator, the scope-scoped operator, scope Resolution operator can access properties and methods overridden in static, const, and class.

Used outside of the class definition, called with the class name. In PHP 5.3.0, you can use variables instead of class names.

Program List: Accessing the class definition externally with a variable
<?phpclass Fruit {    const Const_value = ' Fruit Color ';} $classname = ' Fruit '; Echo $classname:: Const_value; As of PHP 5.3.0echo fruit::const_value;? >

Program List: Used outside the class definition ::

<?phpclass Fruit {    const Const_value = ' Fruit Color ';} Class Apple extends fruit{public    static $color = ' Red ';    public static function Doublecolon () {        echo parent::const_value. "\ n";        echo Self:: $color. "\ n";    }} Apple::d Oublecolon ();? >

Program Run Result:

Fruit Color Red

Program List: Calling the parent method

<?phpclass fruit{    protected function Showcolor () {        echo "fruit::showcolor () \ n";    }} Class Apple extends fruit{    //Override parent ' s definition public    function Showcolor ()    {        /* but still Call the parent function        Parent::showcolor ();        echo "Apple::showcolor () \ n";    }} $apple = new Apple (); $apple->showcolor ();? >

Program Run Result:

Fruit::showcolor () Apple::showcolor ()

Program List: Using scope qualifiers

<?php    class Apple    {public        function Showcolor ()        {            return $this->color;        }    }    Class Banana    {public        $color;        Public function __construct ()        {            $this->color = ' Banana is yellow ';        }        Public Function GetColor ()        {            return apple::showcolor ();        }    }    $banana = new Banana;    echo $banana->getcolor ();? >

Program Run Result:

Banana is yellow

Program List: Methods for calling base classes

<?phpclass fruit{    static function color ()    {        return ' color ';    }    static function Showcolor ()    {        echo ' show '. Self::color ();    }} Class Apple extends fruit{    static function color ()    {        return ' red ';    }} Apple::showcolor ();//output is "Show Color"!? >

Program Run Result:

Show Color









Double Colon in PHP:: Usage

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.