Home  >  Article  >  Backend Development  >  What are abstract classes and static methods in php

What are abstract classes and static methods in php

王林
王林Original
2020-09-29 09:36:142159browse

The abstract class in php refers to a class with the abstract keyword added before the class and an abstract method. It cannot be instantiated directly; the static method refers to the method modified by the static keyword, static Methods are used to manipulate static properties.

What are abstract classes and static methods in php

Abstract class

Abstract class means adding abstract keyword before class and there is abstract method (before class method function keyword Added abstract keyword) class.

(Recommended tutorial: php video tutorial)

Abstract classes cannot be instantiated directly. The abstract class only defines (or partially implements) the methods required by the subclass. Subclasses can make an abstract class concrete by inheriting it and by implementing all the abstract methods in the abstract class.

If a subclass needs to be instantiated, it must implement all abstract methods in the abstract class. If the subclass does not implement all abstract methods in the abstract class, then the subclass is also an abstract class and must be preceded by the abstract keyword in class and cannot be instantiated.

Example:

abstract Class AbstractClass
{
    abstract public function A();//这里不要携带body
    abstract protected function B();//这里不要携带body
    public function C(){}//这里要携带body
}

class ClassA extends AbstractClass
{
    public function A(){
        echo "Hello,I&#39;m A <br/>";
    }
    protected function B(){
        echo "Hello,I&#39;m B <br/>";
    }
    public function E()
    {
        echo "Hello,I&#39;m E <br/>";
    }
}

Static method:

The static method is modified by the static keyword.

Static methods are used to operate static properties. Therefore, non-static properties cannot be manipulated in static methods.

Since static methods do not need to be called through objects, the pseudo variable $this is not available in static methods.

How to access static methods?

Inside the class: class name::static method or self::static method

Outside the class: class name::static method or object instance->static method

Examples:

class Person{
    public static $nums = 0;    // 静态属性的申明
    public $age = 0;
    public function addNum(){
        self::$nums++;
        echo self::$nums;   // 在类里面,可用self关键词访问静态属性
        echo Person::$nums;     // 类可直接访问静态属性
        // echo $this->nums;  // 报错,静态属性不可以由对象通过 -> 操作符来访问
        self::getNum();     // 在类里面,可用self关键词访问静态方法
        Person::getNum();   // 类可直接访问静态方法
    }
    public static function getNum(){
        // 静态方法
        // echo $this->age;  // 报错,静态方法里面不能操作非静态属性
        echo &#39;真的吗?&#39;.self::$nums;    //静态方法中只能操作静态属性 
    }
}
$p1 = new Person();
$p1->addNum();
echo $p1::$nums;    // 对象实例可以这样访问静态属性
Person::getNum();   // 类可直接访问静态方法
$p1->getNum();  // 对象实例可以这样访问静态方法

Related recommendations: php training

The above is the detailed content of What are abstract classes and static methods in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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
Previous article:php生成token的方法Next article:php 不定参数如何传递