Usage of PHP scope qualifier double colon::_PHP tutorial

WBOY
Release: 2016-07-13 10:33:45
Original
815 people have browsed it

The double-colon operator, the Scope Resolution Operator, can access static, const, and overridden properties and methods in classes.

If used outside the class definition, use the class name to call. In PHP 5.3.0, you can use variables instead of class names.

Program List: Use variables to access outside the class definition

    
<?php
class Fruit {
    const CONST_VALUE = 'Fruit Color';
}
$classname = 'Fruit';
echo $classname::CONST_VALUE; // As of PHP 5.3.0
echo Fruit::CONST_VALUE;
?>
Copy after login

Program List: Used outside a class definition::

  
<?php
class 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::doubleColon();
?>
Copy after login

Program execution result:

Fruit Color Red
Copy after login

Program List: Call parent method

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

Program execution result:

Fruit::showColor() 
Apple::showColor()
Copy after login

Program List: Use scope qualifier

  
<?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();
?>
Copy after login

Program execution result:

Banana is yellow
Copy after login

Program List: Method of calling base class

    
<?php
class 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"!
?>
Copy after login

Program execution result:

show color
Copy after login

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/752410.htmlTechArticleThe double colon operator is the scope qualification operator Scope Resolution Operator can access static, const and overridden objects in classes Properties and methods. If used outside a class definition, use the class name to call it. ...
Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!