php静态变量为什么不存放引用?

想从内存的角度听听是怎么回事

<?php
// 报错
$a = 1;
static $b = &$a;
echo $b;

补充:
把静态变量换成数组就可以了。

<?php
//正常
$a = 1;
static $b = [];
$b[0] = &$a;
var_dump($b);
die;
芜湖不芜
浏览 388回答 1
1回答

泛舟湖上清波郎朗

这个和 PHP 没有关系,是因为静态变量比普通变量声明的早,当程序编译时,会把静态变量放到一个内存中,但这是程序还没运行,而普通变量的值未知的,所以会出现错误。即使不是引用也不可以,你试一下。
打开App,查看更多内容
随时随地看视频慕课网APP