Variabler Bereichsunterschied zwischen PHP und C: Block-Bereich ist nicht genau gleich?

Der folgende PHP-Code gibt @ a3.

function main() {
    if (1) {
        $i = 3;
    }
    echo $i;
}

main();

Aber der folgende C-Code löst einen Kompilierungsfehler aus.

void main() {
    if (1) {
        int i = 3;
    }

    printf("%d", i);
}

So-Variablen in PHP sind nicht streng blockspezifisch? In PHP können im inneren Block definierte Variablen im äußeren Block verwendet werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage