![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Słowem wstępu. Piszę pewną aplikację. Struktura wygląda mniej więcej tak... Cytat skrypty/strona_podstrona1.php szablony/strona_podstrona1.tpl jezyk/strona_podstrona1.lang strona.php Plik strona.php nie zawiera samej treści - to plik zawierający dane dot. reszty podstron, ustawień, generuje linki do podstron. Aktualnie wyświetlana podstrona to 3 dołączone do strona.php pliki (z kodem, szablonem i tłumaczeniem). Wiem, że mógłbym umieścić to w pliku strona.php i odczytywać tylko zmienną z adresu i na jej podstawie wyświetlać odpowiednią treść, jednak każda z podstron jednej strony pełni inną funkcję, zawiera całkowicie inny kod i inaczej wygląda, tak więc lepiej, gdyby te pliki były oddzielone. Odczytana z adresu zmienna trafia do require_once(strona_+$zmienna) i potem wszystko się ładnie wyświetla. Jeśli dołączam pliki na czysto w strona.php, wszystko działa normalnie. Napisałem funkcję, która dołączy plik. Okrojona do kluczowego elementu wygląda tak:
I w tym momencie zmienne się gubią. Jeśli w pliku ze skryptem "strona_podstrona1.php" wpisze:
I wyświetlę ją w szablonie, widoczne będzie tylko 'cośtam'. $zmienna znika. Czy ktoś orientuje się w czym tkwi problem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 3 Dołączył: 18.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
wywal return
poza tym zmienne są wew. funkcji a zatem nie są widoczne poza nią. Ten post edytował Pyton_000 31.10.2014, 21:31:27 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... Czyli musiałbym zadeklarować wcześniej wszystkie zmienne jako globalne? Nie można tego zrobić w inny sposób?
Przykładowo: chciałbym napisać funkcję, która sprawdziłaby mi czy plik istnieje, jeśli tak to aby został dołączony, a w innym wypadku funkcja zwróciłaby komunikat o tym, jakiego pliku brakuje... Czy coś w tym stylu. Nie da się tego zrobić w prosty sposób? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
PO czym wnioskujesz, że $zmienna jest utracona?
Jeżeli masz w pliku $zmienna = 1; includujesz ten plik i sprawdzisz tam var_dump($zmienna); to puste? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak, jeśli użyję własnej funkcji dołączającej plik - var_dump nic nie wyświetla.
Ba, jeśli korzystam z własnej funkcji var_dump (która w razie braku danych do wyświetlenia wyrzuca o tym komunikat), to nie dostaję tejże informacji zwrotnej. Jeśli zwyczajnie dołączam plik poprzez czyste require/include to wszystko działa należycie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przecież dostałeś już kilka postów odpowiedzi że masz poczytać o zasięgu zmiennych bo to z tym masz problem. Dalej nie rozumiesz?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:50 |