Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z __autoload
Forum PHP.pl > Forum > PHP
dzesi
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:)
nospor
Podstawowe pytanie: czy ten kod testujesz na php5?
kwiateusz
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
nospor
@kwiateusz
http://pl.php.net/__autoload
joebezucha
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.