Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dostęp do zmiennej zdefiniowanej w funkcji poza funcką
pawel.ad
post 23.04.2011, 10:17:20
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Może problem banalny, ale nie za bardzo wiem jak zdefiniować problem w Google, bo za każdym razem jak próbuję znaleźć rozwiazanie to wyskakuja mi odpowiedzi z zastosowaniem GLOBAL $a czyli na odwrót(dostęp w funkcji do zmiennej która została zdefiniowana przed funkcją).

Chcę aby poniższy kod poprawnie wyświetlił zmienną b
Kod
function(test) {
$a = 1;
$b = 2;

$suma = $a + $b;

echo $suma;
};

test();
echp $b;      // tu ma się wyświetlić 2


Z góry przepraszam jeżeli pytanie banalne smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
mat-bi
post 23.04.2011, 10:23:21
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


no bo i tak - global

EDIT:

Global umożliwia także wlaśnie tworzenie globalnych zmiennych ze zmiennych w funkcji

Ten post edytował mat-bi 23.04.2011, 10:25:46
Go to the top of the page
+Quote Post
pawel.ad
post 23.04.2011, 10:32:03
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Mógłbyś na przykładzie zasosować?

Coś takiego nie działa:
Kod
function test() {
    $a = 1;
    $b = 2;

    $suma = $a + $b;

    echo $suma;
};

global $b;

test();
echp $b;      // tu ma się wyświetlić 2
Go to the top of the page
+Quote Post
mat-bi
post 23.04.2011, 10:34:20
Post #4





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


A zajrzałeś do manuala, jak podałem ci linka? Tam jest to dokładnie wytłumaczone

Tak BTW masz błąd w kodzie.

Ten post edytował mat-bi 23.04.2011, 10:35:12
Go to the top of the page
+Quote Post
pawel.ad
post 23.04.2011, 10:44:30
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Tak zajrzałem, i nadal zaglądam, ale widzę tylko:
Kod
$a = 1;
$b = 2;

function Suma()
{
    global $a, $b;

    $b = $a + $b;
}

Suma();
echo $b;

Czyli odwrotność tego co ja chcę zrobić.

Próbuję analogicznie:
Kod
function Suma() {
    $a = 1;
    $b = 2;

    $b = $a + $b;
};

Suma();
global $a, $b;
echo $b;

ale nic mi nie wychodzi...
Go to the top of the page
+Quote Post
mat-bi
post 23.04.2011, 10:46:12
Post #6





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Nie to, dalej masz dobry przykład
Go to the top of the page
+Quote Post
pawel.ad
post 23.04.2011, 11:12:42
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Dzięki, znalazłem
Go to the top of the page
+Quote Post
NEO.pl
post 23.04.2011, 11:24:41
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Przemysl to co chcesz zrobic bo taka metoda to proszenie sie o klopoty. Przekaz sobie zmienna zewnetrzna do funkcji przez referencje (foo(&$b), albo normalnie podstawiaj wynik zwrocony przez funkcje. Nie ruszaj GLOBAL bo bedziesz mial smietnik w kodzie.
Go to the top of the page
+Quote Post
Ociu
post 23.04.2011, 12:15:25
Post #9





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Temat: Tematyka i zasady panujace na forum Przedszkole
Proponuję poprawić bbcode zanim zamknę Ci temat.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:40