Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmienna nie przyjmuje wartości z funkcji klasowej
dr revuu
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Problem wygląda następująco. Mam funkcję klasy:

  1. class jakasklasa{
  2. function jakasfunkcja($dana){
  3. if(empty($dana)==TRUE){
  4. $dana=0;
  5. }
  6. }
  7. }


Piszę sobie:

  1. $zmiana = new jakasklasa;
  2. $zmiana->jakasfunkcja($jakas_dana);


I niestety zmienna nie zmienia mi się na podaną cyfrę (0). Jeśli wstawię tam instrukcję echo to działa. Pomyślałem, że może trzeba zwrócić zmienną i użyłem return, ale również nic. Proszę o sugestie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Skąd wiesz że nic się nie zmienia skoro ta metoda nic nie zwraca? Masz na myśli coś takiego:
  1. function check_empty($jakas_zmienna) { //bez sensu, ale co tam
  2. return (int) empty($jakas_zmienna);
  3. }

Czy raczej takiego?
  1. class chockiKlocki {
  2. private $zmienna = NULL;
  3. function set_zmienna($jakaszmienna) { //ustawia właściwość obiektu zmienna
  4. $this->zmienna = $jakaszmienna;
  5. return $this;
  6. }
  7. }


Ten post edytował everth 2.08.2010, 17:12:31
Go to the top of the page
+Quote Post
dr revuu
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Już raczej to drugie. Chodzi mi o to, aby mieć funkcję klasową, która sprawdza czy podany ciąg (zmienna) jest pusty, a jeśli tak to zamienia go na 0 (zero) i zwraca zmienną, tak abym mógł dalej na niej operować.

Ty podałeś w drugiej funkcji jak się zwraca atrybut, ale mi chodzi o zmienną o konkretniej nazwie.
Go to the top of the page
+Quote Post
everth
post
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


To chyba ty chcesz mieć zwykłą funkcję (pal licho czy umieszczoną w klasie) w stylu:
  1. class jakasklasa{
  2. function jakasfunkcja($dana){
  3. if(empty($dana)){
  4. return 0;
  5. } else {
  6. return $dana;
  7. }
  8. }
  9. }


Ten post edytował everth 3.08.2010, 07:01:40
Go to the top of the page
+Quote Post
dr revuu
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Chodziło mi o to, że zmienna nie była widoczna poza funkcją lub poza funkcją miała nie zmienioną wartość. Rozwiązaniem jest przekazanie jej przez referencje (lub zmienienie jej statusu na globalną). Wszystkich, którzy w konstruktywny sposób chcieli mi pomóc, nagrodzę.
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: 24.08.2025 - 12:44