常量和静态变量会先载入内存后在进行执行php代码

static $test=1;//php执行前就已经写入内存
$test++;
var_dump($test);
static $test=10;//php执行前就已经写入内存
var_dump($test);
$test--;
var_dump($test);
$test-=10;
$test-=5;
$test--;
static $test=20;//php执行前就已经写入内存,写入的值就是最后一个定义的值
var_dump($test);
/*
* int(21) int(21) int(20) int(4)
* 为什么打印出来是这样的值 ?
* 因为常量和静态变量会先载入内存后在进行执行php代码。
* 不理解 ? 用白话说就是:
* 同一个静态属性会以最后一个定义的数值PHP会进行内存存放,
* 1.所以我们打印出来第一个值就是int(21)
* 2.第二个值代码没改动,等同第一个值
* 3.第三个值进行--,所以是第二数值-1.
* 4.第四值进行-16(自行研究16由来),所以第三值-16就是第四位数值。
原文地址:https://www.cnblogs.com/ghjbk/p/6963054.html