05. januar 2009 - 16:01Der er
5 kommentarer og 1 løsning
Catchable fatal error
Når jeg kører nedenstående script på en PHP 5.2.6 for jeg fejlen Catchable fatal error: Object of class testClass could not be converted to string in <...>/test.php on line 20 på en PHP Version 5.1.6 får jeg ingen fejl, er det en bug eller er der noget fejl i min kode? Hvis jeg ændrer $test til noget andet så får jeg ingen fejl.
?PHP // Test side session_start(); $_SESSION['test'] = "TEST";
class testClass { function testFunction(){ echo("test"); } }
Hvad vil have der sker, når du skriver echo($_SESSION['test']); Skal den udskrive "TEST" ?
I så fald er du faldet i hullet med navn "register globals", som netop giver sammenfald mellem almindelige variabler og fx $_SESSION-arrayet. Du skal bare erstatte
$test = new testClass(); $test->testFunction();
med
$test2 = new testClass(); $test2->testFunction();
(eller tilsvarende)
Register_globals bør være slået fra på en moderne PHP-installation. Mange webhoteller lader den være, fordi det sikkert giver færre supporthenvendelser - der er tonsvis af gamle scripts, der ikke ville virke ellers.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.