Gå til innhold

__autoload() finner ikke klassen [LØST]


Anbefalte innlegg

Hei!

 

Jeg har litt problemer med å få __autoload() funksjonen til å funke.

Her er koden jeg bruker nå:

 

<?php

function __autoload($class) {
require_once("classes/{$class}.php");
}


class Index extends Page {

function doSomething() {
	$this->out('Dette er en test!');
}

}

$index = new Index();
$index->pageHeader();
$index->doSomething();
$index->pageFooter();

unset($index);

?>

 

men får en hyggelig feilmelding som sier:

 

Fatal error: Class index: Cannot inherit from undefined class page in /hsphere/local/home/tuver378/tuverud.com/index.php on line 9

 

Jeg har sjekket pathen flere ganger, og alle filer ligger der de skal, men allikevel klarer ikke scriptet å finne de andre klassene. Har også prøvd med absolute paths, men ble ikke noe bedre da. Jeg har prøvd med en enkel require_once('classes/Page.php'), og det funker greit. Men __autoload() fikser det ikke!

 

Noen ideer om hva som kan være feil?

 

Takk for all hjelp! :)

Endret av Tharzul
Lenke til kommentar
Videoannonse
Annonse

Hmmm.. Merkelig.. Har prøvd å reprodusere feilmeldingen...

 

Følgende fungerer hos meg:

classes/Page.php:

<?php

class Page {
	function SayHello() {
			echo "Hello ";
	}
}
?>

 

autoload.php

<?php

function __autoload($class) {
	require_once("classes/{$class}.php");
}


class Index extends Page {
	function onYou() {
			echo "on You";
	}
}

$index = new Index();
$index->SayHello();
$index->onYou();
//$index->pageFooter();

unset($index);

 

Hvilken versjon av php kjører du ?

Jeg har 5.2.1

Evt så hadde det kanskje hjulpet å sett litt på Page.php, kanskje ?

Endret av kakkle
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...