Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Funkcja i metoda, Funkcja i metoda
matejbos
post 14.09.2012, 13:12:53
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 29.06.2012

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


Witam. Problem następujący.


  1. function dziala(){
  2. echo "Ta funkcja działa";
  3. }
  4.  
  5. if(isset($_POST['submit'])){
  6. dziala();
  7. }
  8.  
  9. class Przyklad(){
  10.  
  11. function nie_dziala(){
  12. echo "Ta metoda nie działa";
  13. }
  14.  
  15. }
  16. $obiekt = New Przyklad();
  17. $obiekt->nie_dziala(); <---- to wyswietla
  18.  
  19.  
  20. if(isset($_POST['submit'])){
  21. $obiekt->nie_dziala(); <--- tego juz nie
  22. }


Czego nie dopisałem, lub co źle zrobiłem questionmark.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
b4rt3kk
post 14.09.2012, 13:15:46
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Hmm, może dlatego, że zmienna nie istnieje, przez co warunek isset nie jest spełniony?

  1. if(isset($_POST['submit'])){
  2. $obiekt->nie_dziala(); <--- tego juz nie
  3. echo 'test'; // dopisz linijke i sprawdz czy ja wyswietli
  4. }


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
matejbos
post 14.09.2012, 13:27:49
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 29.06.2012

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


to przykład tylko z kodu zmienna istnieje <input type="submit" value="Dodaj produkt" name="submit"/>
Go to the top of the page
+Quote Post
b4rt3kk
post 14.09.2012, 13:41:06
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Skoro jesteś pewien, że warunek jest spełniony to jeszcze się upewnij, że tworzysz nowy egzemplarz klasy nim użyjesz metody. Próbowałeś się dostać poprzez:

  1. Przyklad::nie_dziala();


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
matejbos
post 14.09.2012, 14:30:52
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 29.06.2012

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


Ok, faktycznie działa w tym przypadku, ale jest problem z działaniem zmiennej np tak jak w tym przypadku, wywala taki błąd Fatal error: Using $this when not in object context


  1. <input type="submit" value="Dodaj produkt" name="submit"/>

  1. class Przyklad(){
  2.  
  3. public $proba="Nie wyswietla/nie dziala ta zmienna";
  4.  
  5. function nie_dziala(){
  6. echo $this->proba;
  7. }
  8.  
  9. }
  10. $obiekt = New Przyklad();
  11. $obiekt->nie_dziala();
  12.  
  13. Przyklad::nie_dziala();
  14.  
  15. if(isset($_POST['submit'])){
  16. $obiekt->nie_dziala(); // nie dziala
  17. Przyklad::nie_dziala(); // nie dziala
  18. }


Ten post edytował matejbos 14.09.2012, 14:31:56
Go to the top of the page
+Quote Post
b4rt3kk
post 14.09.2012, 14:49:16
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Bo nie tak się nadaje wartości w obiektowym PHP.

  1. class Przyklad(){
  2.  
  3. public $proba;
  4.  
  5. function __construct() {
  6. $this->proba = 'jakas wartosc';
  7. }
  8.  
  9. function nie_dziala(){
  10. echo $this->proba;
  11. }


Ten post edytował b4rt3kk 14.09.2012, 14:50:10


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
pamil
post 14.09.2012, 14:54:10
Post #7





Grupa: Zarejestrowani
Postów: 97
Pomógł: 15
Dołączył: 12.08.2012
Skąd: Zabrze

Ostrzeżenie: (10%)
X----


Cytat(b4rt3kk @ 14.09.2012, 15:49:16 ) *
Bo nie tak się nadaje wartości w obiektowym PHP.

  1. class Przyklad(){
  2.  
  3. public $proba;
  4.  
  5. function __construct() {
  6. $this->proba = 'jakas wartosc';
  7. }
  8.  
  9. function nie_dziala(){
  10. echo $this->proba;
  11. }


Głupoty pleciesz, wyrażenie
  1. public $proba = 'tekst';
jest poprawne oraz to dobra praktyka przy definiowaniu domyślnych wartości. Działa to dla wszelkich typów prostych (nie stworzysz obiektu w ten sposób/nie obliczysz wartości/nie dodasz czegoś warunkowo).
Go to the top of the page
+Quote Post
matejbos
post 14.09.2012, 15:16:18
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 29.06.2012

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


Ok teraz wszystko działa poprawnie, dzięki wielkie za szybkie odpowiedzi.
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: 14.08.2025 - 03:38