Introduction to static variables in php

不言
Release: 2023-04-02 16:02:01
Original
1859 people have browsed it

This article mainly introduces the introduction of static variables in php. It has certain reference value. Now I share it with everyone. Friends in need can refer to it

1 Static variables in functions
Only Acts inside the function. After each call, the value of the static variable will change based on the previous call. When defining, if an initial value is assigned, this statement will only be executed once
For example: No matter how many times getdata() function static $c2 = 0 is called; this statement will only be executed once

function getdata(){
static $c2 = 0;//初始化语句
$c2 = $c2 + 1;
echo "$c2\n";
}
getdata();//结果 1
getdata();//结果 2
Copy after login

2 static class member variables
1. The static member variables of the class only belong to this class, but all instances of the class share this static member variable
2. Static member variables do not need to be instantiated Access, and the access speed is faster
For example:

class C1 {
//use Counter;
static $c2=1;
public function inc() {
static $c;
$c = $c + 1;
echo "$c\n";
}
}
$o = new C1();
$o->inc(); // echo 1
$p = new C1();
$p->inc(); // echo 2
echo'
';
$p::$c2=5;
echo C1::$c2;//echo 5 静态成员变量不需要实例化就能访问,且访问速度快一些
echo'
';
echo $p::$c2;//echo 5
echo'
';
echo $o::$c2;//echo 5
Copy after login

1.static class method
The static method of the class can only access static member variables, but not non-static member variables (if Yes, an error will be reported)

class C3 {
//use Counter;
public static $c3=1;
public $c5 =5;
public static function inc1() {
echo C3::$c3;//
}
public static function inc2() {
echo $this->c5; //会报错 $this不允许出现在静态方法中
}
}
C3::inc1();// echo 1
C3::inc2(); //Fatal error: Uncaught Error: Using $this when not in object context
Copy after login

2. Trait’s static variables
Trait’s static variables have no influence on each other when used by different classes
For example:

trait Counter {
public function inc() {
static $c = 0;
$c = $c + 1;
echo "$c\n";
}
}
class C1 {
use Counter;
}
class C2 {
use Counter;
}
$o = new C1();
$o->inc(); // echo 1
$o->inc(); // echo 2
$b = new C1();
$b->inc(); // echo 3
$b->inc(); // echo 4
$p = new C2();
$p->inc(); // echo 1
$p->inc(); // echo 2
Copy after login

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

Implementation of PHP background comments

How PHP verifies the legality of IP

How to implement simulated multiple inheritance in php

The above is the detailed content of Introduction to static variables in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
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