php if 语句中的静态
我的配置文件中有这样的结构:
<?php
if (true) {
$nonstatic = 1;
static $config = 1;
}
else {
$nonstatic = 2;
static $config = 2;
}
echo $nonstatic;
echo $config;
?>
如果这部分语句为 false 而 $nonstatic 包含 1,为什么 $config 包含 2?这是一个错误吗?
I have a construction like this in my config file:
<?php
if (true) {
$nonstatic = 1;
static $config = 1;
}
else {
$nonstatic = 2;
static $config = 2;
}
echo $nonstatic;
echo $config;
?>
So why the $config contains 2 if this part of the statement is false and $nonstatic contains 1? Is it a bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想这个块是从一个函数中包含的。
静态变量的初始化在编译时解析,如果解释器发现多个初始化,它只需要底部的一个。
I suppose this chunk is being included from a function.
Initialisations of static variables are resolved at compile-time, and if the interpreter finds multiple initialisations, it simply takes the bottom one.