16. september 2013 - 17:32
Der er
11 kommentarer og 1 løsning
OOP begynder
Hvorfor giver koden herunder fejlen "Notice: Undefined variable: a in C:\xampp\htdocs" osv. Vh Kim <?php class Test{ private $a = "test"; private $class_navbar1 = "navbar1"; public function __construct() { $this->a = $a; $this->class_navbar1 = $class_navbar1; } public function Display(){ echo $this->a; } } $menu = new Test(); $menu->Display(); ?>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
16. september 2013 - 17:41
#1
$a er ikke defineret Mener du: public function __construct($a) { $this->a = $a; ... } ?
16. september 2013 - 17:50
#2
Nej, jeg ville ikke have en variabel til __construct-funktionen. Det var et lille forsøg, og så undrer det mig at der kommer en fejl.
16. september 2013 - 18:04
#3
Hvad forventer du at: $this->a = $a; goer?
16. september 2013 - 18:16
#4
Ingenting, men jeg forventede ikke en fejl. Jeg regnede med at $this->a ville være en property, som kunne tilgås med "echo $menu->a;"
16. september 2013 - 18:22
#5
Hvis den ikke var private saa kunne du tilgaa den som: $enellerandeninstansaftest->a
16. september 2013 - 18:24
#6
Hvorfor forventede du ikke en fejl? Du forsoeger at bruge en ikke eksisterende variabel.
16. september 2013 - 18:24
#7
ja, det ville jeg også mene, men nu får jeg jo den fejl med Undefined variable....
16. september 2013 - 18:28
#8
$a er vel en variabel, som jeg sætter til en property inde i constructen med $this->a = $a
16. september 2013 - 18:29
#9
du kommer jo aldrig til: $enellerandeninstansaftest->a naar du faar en fejl inden.
16. september 2013 - 18:30
#10
Nej. Du tildeler fra hoejre mod venste. $this->a = $a saetter ikke variabel a til propertyen a - den forsoeger at saette propertyen a til en ikke eksisterende variabel a.
16. september 2013 - 20:29
#11
Nu har jeg vist forstået det :-) Det virkede ikke fordi der ikke var nogen argumenter til construct-funktionen. Der skulle være to: $a og $class_navbar1: Denneher virker: <?php class Test{ private $a; private $class_navbar1; public function __construct($a, $class_navbar1) { $this->a = $a; $this->class_navbar1 = $class_navbar1; } public function Display(){ echo $this->a; } } $menu = new Test("hans","jens"); $menu->Display(); ?> Jeg kom frem til en bedre forståelse, så tak for hjælpen og læg et svar, så får du point :-) Vh Kim
16. september 2013 - 20:37
#12
svar
Vi tilbyder markedets bedste kurser inden for webudvikling