PHP switch deyimi değişken kapsamı

4 Cevap php

PHP, nasıl değişken kapsamı switch ifadeleri ele alınır?

Örneğin, bu farazi örnek almak:

$someVariable = 0;

switch($something) {

    case 1:
        $someVariable = 1;
        break;

    case 2:
        $someVariable = 2;
        break;
}

echo $someVariable;

Olur, bu baskı 0 veya 1/2?

4 Cevap

Değişken kod sizin bütün kısmında aynı olacaktır: PHP "blok başına" değişken kapsamı yoktur.

Yani, $something 1 veya 2, yani case switch arasında birinde girerseniz , kod olurdu çıkışı 1 veya 2.

Öte yandan, $something değilse 1 ne 2 (for instance, if it's considered as 0, bu gibi, yayınlanan koduyla durumda olduğu bir şey) , you will not enter in any of the case blok başlatıldı değil; ve kod irade çıktı 0.

PHP sadece bir global and function/method scope var. Bu yüzden $someVariable switch blok içindeki gibi dış aynı değişkene karşılık gelir.

Ama $something erişme, (en azından size sağlanan kodu) tanımlı olmadığından bir Undefined variable haber, davalar maçın hiçbiri (tanımlanmamış değişkenler eşit {[(2) yükseltir ]}), $someVariable değişmeden kalacak ve 0 basılacaktır.

Bu 1 basacaktır veya 2. PHP Değişkenler bütün fonksiyonunun kapsamı var.

Eğer yoksa bunu switch deyimi $someVariable değerini değiştirirseniz, 1 ya da 2 baskı ve 0 olacaktır.