Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z __autoload
dzesi
post 12.07.2007, 10:42:33
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 3.05.2006

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


Witam was nigdy nie była mi poczebna funkcja autoload to nie używałem ,ale zobaczyłem ze dzieki niej mozna includować duża ilośc stron . Mam taki skrypcik
  1. //index.php
  2. <?php
  3. function __autoload($klasy) {
  4. require_once $klasy . '.php';
  5. }
  6.  
  7. $obj = new masssage();
  8. $obj2 = new error(); 
  9. ?>

i
teraz mam nastepujacy problem bo mam pliki masssage.php i error.php a w nich polecnia echo ale
jak wykonuje index.php z funkcja autoload to pokauje mi się błąd i niepokauje zawrtosci pliku error dlaczego ?


cos tam biggrin.gif -> z pliku masssage
Cannot instantiate non-existent class: massage in /public_html/test/klasa.php on line 6


Dzinx za pomoc!:)

Z moich przypuszczeń to niemoze znaleść klasy error lub ma problem z łądowaniem klasy massage lub jej niemoze znaleść skoro jest smile.gif, ale moge sie mylić jak działa ta funkcja bo prawde mowiać to anglika nieznam perfect zeby rozumieć całkowicie jej znaczenie , ale myśle że dobrze zrozumiałem:)

Ten post edytował dzesi 12.07.2007, 10:45:50
Go to the top of the page
+Quote Post
nospor
post 12.07.2007, 10:48:14
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Podstawowe pytanie: czy ten kod testujesz na php5?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kwiateusz
post 12.07.2007, 11:16:18
Post #3


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a __autoload nie stosuje sie tylko i wyłącznie w klasach? bo z tego przykładu wynika że leży sobie tak luzem


edit do postu niżej: można i tak smile.gif
Go to the top of the page
+Quote Post
nospor
post 12.07.2007, 11:18:48
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@kwiateusz
http://pl.php.net/__autoload


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
joebezucha
post 12.07.2007, 11:22:08
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 1
Dołączył: 23.05.2007
Skąd: Gliwice

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


funkcja __autoload($className) służy do dołączania definicji klas

a zdaje mi się, że próbujesz jej użyć do includowania skryptów które nie zawierają definicji klasy.

przykład uzycia:

gdy masz w pliku moja_klasa.php zdefiniowaną klase MojaKlasa

  1. <?php
  2.  
  3.  
  4. function __autoload($klasa){
  5. $lista_klas = array( 'MojaKlasa' => 'moja_klasa.php')
  6. if (isset($lista_klas[$klasa])){
  7. require_once($lista_klas[$klasa]);
  8. }
  9. }
  10.  
  11. $obj1 = new MojaKlasa();
  12.  
  13. ?>


można to jeszcze uprościc nazywając plik klasy zgodnie z nazwą klasy np.

  1. <?php
  2. function __autoload($klasa){
  3. require_once($klasa . '.php');
  4. }
  5. ?>


Ten post edytował joebezucha 12.07.2007, 11:25:43
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: 28.06.2025 - 08:42