Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcje we funkcjach a zmienne
seba123
post 19.12.2011, 07:07:24
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

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


Hey ! Na wstępie zaznaczam, że wstyd mi że poległem na czymś takim... wstydnis.gif ale do rzeczy.

Mam taki kod
  1. function moja_funkcja()
  2. {
  3. $atomojazmienna = 'wartosc';
  4.  
  5. function moja_funkcja_w_srodku()
  6. {
  7. /*global $atomojazmienna;*/
  8. echo $atomojazmienna;
  9. }
  10.  
  11. moja_funkcja_w_srodku();
  12. }
  13.  
  14. moja_funkcja();
no właśnie, i tu mam problem - jak dostać się do zmiennej
  1. $atomojazmienna
?
Go to the top of the page
+Quote Post
Uriziel01
post 19.12.2011, 07:27:00
Post #2





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Albo trzymać ja jako globalną albo przekazać ja jako parametr wywołania kolejej funkcji albo (jeżeli piszesz obiektowo) przekazać instancję obiektu który daną zmienna posiada.

EDIT:
Ale chwileczkę, dlaczego masz deklaracje funkcji w funkcji ? Chyba tutaj czegos nie rozumiem ? Możesz wywoływać funkcje wewnątrz innych funkcji ale jak chcesz tam je zadeklaraować, to chyba nawet nie ma prawa działać.
Powinienes napisać:
  1. function moja_funkcja_w_srodku()
  2. {
  3. }
  4. function moja_funkcja()
  5. {
  6. moja_funkcja_w_srodku();
  7. }
  8.  
  9. moja_funkcja();


Ten post edytował Uriziel01 19.12.2011, 07:31:39
Go to the top of the page
+Quote Post
seba123
post 19.12.2011, 07:31:55
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

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


Opiszę zastosowanie jakie mam. Wygląda kod tak:
  1. class obiekty {
  2.  
  3. function moja_funkcja()
  4. {
  5. $atomojazmienna = 'wartosc';
  6. // tu sie cos dzieje, etc
  7.  
  8. // a w tym miejscu musze uzyc preg_replace_callback, i we funkcji ktora podalem jako parametr preg_replace_callback chce uzyc $atomojazmienna
  9. }
  10. }


W komentarzu wyjaśnione wszystko.
Go to the top of the page
+Quote Post
Uriziel01
post 19.12.2011, 07:51:49
Post #4





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Rozumiem. Ale skąd tak naprawdę bierze się ta wartość $atomojazmienna ? Dlaczego nie możesz tego przechowywać jako atrybutu obiektu 'obiekty' ? Bo rozumiem że to są dwie metody w ramach jednego obiektu, tak ?

EDIT:
Jeżeli sa to dwie metody w tej samej instancji obiektu możesz przeciez użyć:
  1. class obiekty
  2. {
  3. function moja_funkcja()
  4. {
  5. $atomojazmianna = 'wartosc';
  6. $this->atomojazmianna = $atomojazmianna;
  7. }
  8.  
  9. function moja_kolejna_funkcja()
  10. {
  11. echo $this->atomojazmianna;
  12. }
  13. }


Ten post edytował Uriziel01 19.12.2011, 08:08:18
Go to the top of the page
+Quote Post
batman
post 19.12.2011, 08:24:37
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Takie coś powinno zadziałać

  1. class obiekty
  2. {
  3. function moja_funkcja()
  4. {
  5. $atomojazmienna = 'wartosc';
  6. // tu sie cos dzieje, etc
  7.  
  8. preg_replace_callback($pattern, function() use ($atomojazmienna) {
  9. $atomojazmienna; // zmienna jest widoczna
  10. }, $subject);
  11. }
  12. }


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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: 26.06.2025 - 14:21