Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Znikająca tablica (zasięg?) - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Znikająca tablica (zasięg?) (/thread-znikajaca-tablica-zasieg)



Znikająca tablica (zasięg?) - kbzium - 28-09-2011

Cześć,

poniżej prościutki kod, tyle, że nie działa, tj wyświetla pustego <select> (z jednym <option> blank). Wygląda więc, że wewnątrz funkcji tablica $SUBJECTS jest niezdefiniowana... ale jak to możliwe, skoro jest ona definiowana w pętli while najbardziej na zewnątrz, tj tuż pod <? ? Oczywiście tablica jest uzupełniana prawidłowo, sprawdzałem. Nie da się jej natomiast wypisać nawet manualnie wewnątrz funkcji (tj. dodać do ret co jest jednoznaczne). Kod:


Kod:
while($row = mysql_fetch_array($result)) {
        $name = $row["name"];
        if($row["level"] == 'r')
            $name.= " rozszerzony";
        else
            $name.= " podstawowy";
            
            
        $SUBJECTS[$row["id"]] = $name;
    }

    function ShowSubjects() {
        
        $ret =  "<select>";
        
        foreach($SUBJECTS as $id => $name)
            $ret.= "<option value='$id'>$name</option>";
    
        $ret.= "</select>";
        return $ret;
    }



RE: Znikająca tablica (zasięg?) - Kartofelek - 28-09-2011

pewnie musisz użyć

global $SUBJECTS;

w funkcji bo tak to nie widzi tej zmiennej


RE: Znikająca tablica (zasięg?) - kbzium - 28-09-2011

Nie spodziewałem się, że w php nie widać zmiennych wewnątrz funkcji (definiowane tam gdzie funkcja). Dzięki!