Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmienne
Forum PHP.pl > Forum > Przedszkole
speedlog
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??
Whatek
w pliku b.php dopisz:
include "a.php";

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

powinno działać.
Cysiaczek
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ń!
speedlog
Niestety nie działa sad.gif Wszystkie te pliki wrzuciłem na serwer więc moźecie sprawdzić u siebie...

http://trikimiki.republika.pl/test.rar
nevt
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
speedlog
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??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.