Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wywołanie metody obiektu w obrębie switch 'a
yivan
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 9.08.2005
Skąd: Zamość

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


Witam

Mam dziwny problem, zapewne wynikający z mojej niewiedzy na temat języka php ;-)

Otóż mam plik index.php a w nim strukture switch np:

  1. <?php
  2.  
  3. (...)
  4. require "class.user.php";
  5.  
  6. $user=new user;
  7.  
  8. switch ($P){
  9. case "a":{
  10. include "a.inc.php";
  11. } break;
  12.  
  13. case "b":{
  14. include "b.inc.php";
  15. } break;
  16. }
  17.  
  18. (...)
  19.  
  20. ?>


natomiast w pliczku a.inc.php:

  1. <?php
  2.  
  3. (...)
  4. $user->validate($u, $p);
  5. (...)
  6.  
  7. ?>


i takie coś nie działa tongue.gif Otrzymuję komunikat Fatal error: Call to a member function on a non-object

Natomiast jeśli przeniosę deklarację obiektu
  1. <?php
  2. $user=new user; 
  3. ?>
do pliku a.inc.php to wszystko jest okej.


Czy ktoś wie dlaczego tak się dzieje? rolleyes.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Wyrzuc te klamry z case'ow to powinno sie "naprawic".


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
yivan
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 9.08.2005
Skąd: Zamość

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


Cytat(FiDO @ 2005-10-20 19:52:15)
Wyrzuc te klamry z case'ow to powinno sie "naprawic".

Nie wiem jaka to różnica z klamrami czy bez (bez klamr wygląda dziwnie ale kod jest wykonywany poprawnie) natomiast problem jest wciąż aktualny smile.gif
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


@FiDO nie wim skąd ten pomysł, ale to nie miało szansy działać. Klamry są tu Bogu ducha winne winksmiley.jpg

@yivan jesteś pewien, że w pliku a.inc.php, lub w miejsu gdzie pokazałeś (...) nie nadpisujesz zmiennej $user :?: Być może podstawiasz gdzieś do niej inną wartość :?:

Pokaż może kod pliku a.inc.php. Może to coś wniesie do sprawy.
Go to the top of the page
+Quote Post
FiDO
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Ech.. mniejsza z klamrami, nie wyspalem sie dzisiaj smile.gif Obiecuje poprawe winksmiley.jpg

A zeby cos wniesc do tematu to (tym razem to przemyslalem ;]) poza opcja, ze zmienna zostala nadpisana jest jeszcze taka opcja, ze w pliku includowanym odwolujesz sie do zmiennej zapisujac ja z bledem, wielkosc liter ma znaczenie wiec mogles popelnic taka literowke i nawet jej nie widzisz.
Aby ulatwic sprawe, przed wywolaniem mozesz umiescic var_dump($user), zeby sie przekonac czy cos w tej zmiennej faktycznie jest i jesli tak to co.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
yivan
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 9.08.2005
Skąd: Zamość

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


pomroczność jasna worriedsmiley.gif

Problemem była inicjalizacja obiektu poprawnie jest $User= new user; niepoprawnie $user= new user;.

Ten post edytował yivan 20.10.2005, 23:07:41
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


mienne w php są case sensitive... czyli
  1. <?php
  2.  
  3. $abc = 'zmienna';
  4. $Abc = 'zmienna 2';
  5.  
  6. echo $abc;
  7. echo $Abc;
  8.  
  9. ?>
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 Aktualny czas: 19.08.2025 - 05:20