![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam pewien problem ze zwracaniem wartości przez metody. W przypadku zwykłych funkcji jest to dość proste bo w funkcji robię return $zmienna; i zmienna ta trafia do miejsca wywołania funkcji i można w dalszej części kodu z niej korzystać prawda? Przynajmniej u mnie to działa (IMG:style_emoticons/default/tongue.gif) Problem mam jak chcę zrobić dokładnie to samo w metodzie. Robię dokładnie tak:
Zmienna $email trafia do metody bez problemu. Metoda działa również bez problemu ale gdy w dalszej części kodu sprawdzam wartość $email to ma ona wartość wprowadzoną z formularza zamiast tą zwróconą przez metodę. Spróbowałem więc inaczej. Utworzyłem zmienna $email_ok gdzie dałem jej wartość 0 albo 1 i zwróciłem return $email_ok ale gdy dałem echo wewnątrz metody z tą funkcją i w dalszej części kodu to zmienna ta miała przypisaną wartość tylko w metodzie dalej już była pusta dlaczego? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kłaniają się podstawowe definicje o metodach, referencjach i zmiennych. Zmienna $email w metodzie staje się jej lokalną, a więc po za nią niestety się nic nie zmieni. Zwracasz return, a więc nie zmieniasz danej, którą do metody przekazujesz, ale otrzymujesz zupełnie nową zmienną. Rozwiązanie na Twoją myśl przedstawie na dwóch przykładach, które dadzą ten sam efekt, ale nie wiem, którą wersję będziesz chciał i rozumiał:
Efekt podobny - dwa rodzaje rozwiązania. Mam nadzieje, że rozumiesz gdzie zrobiłeś błąd. W razie co pisz, to postaram się tłumaczyć inaczej (IMG:style_emoticons/default/smile.gif) A jak pomogłem to proszę o punkcik ;-) Ten post edytował Quadina 3.12.2010, 13:44:00 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o zasięgu zmiennych.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
W formie wyjaśnień dodam, że ciągle raczkuje w obiektowości (IMG:style_emoticons/default/tongue.gif) Co do pierwszego przykładu to rozumiem i na pewno z niego skorzystam (IMG:style_emoticons/default/smile.gif) Co do drugiego to zastosować mogę ale tego nie zrobię ponieważ jeszcze nie uczyłem się o referencjach więc wiem mniej więcej tylko co to jest dlatego bez sensu było by wklepywać kod którego nie do końca czaje. Tak czy inaczej dzięki za szybką i treściwą odpowiedz. Oczywiście punkcik będzie (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli masz PHP >= 5.2.0 to
albo albo
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 04:01 |