我的配置文件中有这样的构造:

<?php
if (true) {
    $nonstatic = 1;
    static $config = 1;
}
else {
    $nonstatic = 2;
    static $config = 2;
}

echo $nonstatic;
echo $config;
?>

那么,如果语句的这一部分为false并且$ nonstatic包含1,为什么$ config包含2?是 bug 吗?

最佳答案

我猜想这个块是从一个函数中包含的。

静态变量的初始化在编译时和if the interpreter finds multiple initialisations, it simply takes the bottom one进行解析。

关于PHP静态在if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7404989/

10-11 13:38