Home >Backend Development >PHP Problem >What is the usage of static in php

What is the usage of static in php

WBOY
WBOYOriginal
2022-02-14 11:22:042823browse

In PHP, the static keyword is used to modify member properties and member methods. Adding a static keyword before an ordinary member of a class can turn this ordinary member into a static member. The syntax for accessing static members is "ClassName::$static property" and "ClassName::static method()".

What is the usage of static in php

The operating environment of this tutorial: windows10 system, PHP7.1 version, DELL G3 computer

What is the usage of static in php

In PHP, the member properties and member methods modified by the static keyword are called static properties and static methods. They can be collectively called static members here. Static members in a class are different from general members in the class. Static Members will not be instantiated into the object, which means that we do not need to instantiate a class to access static members through the class.

It is easy to declare static variables in a class. We can add a static keyword before an ordinary member of the class to turn this ordinary member into a static member. In this way, we can directly access these static members in the class without instantiating the class. The syntax format for accessing static members is as follows:

类名::$静态属性
类名::静态方法()

The :: symbol is called the scope resolution operator, which is used to access static members, static methods and constants, and can also be used to override members and methods in a class.

If you want to access static properties in a member method inside a class, just add the operator self:: before the name of the static property.

The following is a simple example to demonstrate the definition of static members:

<?php
    class Website{
        static public $name = &#39;中文网<br>&#39;;
        public $title = &#39;PHP教程&#39;;
        public static function url(){
            echo self::$name;
            echo &#39;http://www.php.cn/<br>&#39;;
            echo $this -> title;
        }
    }
    Website::url();
?>

The running results are as follows:

中文网
http://www.php.cn/
Fatal error: Uncaught Error: Using $this when not in object context ……

Note: In static methods, only static variables can be called. Ordinary variables cannot be called; ordinary methods can call static variables.

Using static members, in addition to eliminating the need to instantiate the object, another function is to still save the modified static data after the object is destroyed so that it can be used next time. This is the same as what we introduced earlier Static variables are similar.

[Example] Declare a static variable $num, then declare a method, call the static variable inside the method and add 1 to the value of the variable; then instantiate the object in the class, and finally, call the class Methods.

<?php
    class Website{
        static public $num = 0;
        public function add(){
            echo &#39;$num 的值为:&#39;.self::$num;
            self::$num++;
        }
    }
    $num1 = new Website();
    $num1 -> add();
    echo &#39;<br>&#39;;
    $num2 = new Website();
    $num2 -> add();
?>

The running results are as follows:

$num 的值为:0
$num 的值为:1

Static members do not need to instantiate objects. Memory space has been allocated when the class is loaded for the first time, so it is faster to call static members directly. Some. However, if too many static members are declared, the space will be occupied all the time, which will affect the running speed of the system.

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of What is the usage of static 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