Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zmienne, Zmienne z plików inkludowanych
speedlog
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.10.2007

Ostrzeżenie: (0%)
-----


Mam pliki:

a.php a w nim zmienną $x=1;
b.php a w nim zmienną $y=$x+1;

klasa.php
Kod
<?php
class Klasa{
    function Dodaj()
    {
    include "b.php";
    }
}
?>



index.php
Kod
<?php
include "a.php";
include "klasa.php";
$klasa=new Klasa();
$klasa->Dodaj();

echo($y);
?>


Jak sprawić aby zadziałało??

Ten post edytował speedlog 20.10.2007, 00:05:12
Go to the top of the page
+Quote Post
Whatek
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.10.2007

Ostrzeżenie: (0%)
-----


w pliku b.php dopisz:
include "a.php";

index.php
<php?
include "b.php";
?>

powinno działać.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




http://pl.php.net/manual/pl/language.variables.scope.php

Zakładałeś już podobny temat - jeszcze jeden taki numer i dostaniesz +10% do poziomu ostrzeżeń!
Go to the top of the page
+Quote Post
speedlog
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.10.2007

Ostrzeżenie: (0%)
-----


Niestety nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Wszystkie te pliki wrzuciłem na serwer więc moźecie sprawdzić u siebie...

http://trikimiki.republika.pl/test.rar
Go to the top of the page
+Quote Post
nevt
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


a.php tworzy zmienną globalną $x
b.php includowane do wnętrza metody odwołuje się do zmiennej lokalnej $x
jeżeli ma odwołać się do zmiennej globalnej, to w metodzie dodaj, albo na początku pliku b.php dodaj linijkę: global $x;

poczytaj sobie o zasięgach zmiennych w php:
http://pl2.php.net/manual/pl/language.variables.scope.php
Go to the top of the page
+Quote Post
speedlog
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.10.2007

Ostrzeżenie: (0%)
-----


Ok, metodą prób i błędów doszedłem wkońcu iż aby zadziałał ten kod klasa.php musi wyglądać:

Kod
<?php
class Klasa{
    function Dodaj()
    {
    [b]global $x;
     global $y;[/b]
    include "b.php";
    }
}
?>


Naprawdę czytałem ten manual nie raz... Ale nie domyśliłem się że to trzeba tak zadeklarować... Tylko teraz mam problem... Bo plikiem inkludowany przez klasę czsami jest "b.php" ze zmienną $y, czasami "c.php" ze zmienna $z itd... Więc ta linijka "global $y;" nie zawsze będzie tak wyglądała... Więc jak zrobiź tak, aby zmienna $y lub $z była widoczna w pliku index.php??
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:31