Avatar billede alexander_j Nybegynder
13. februar 2007 - 20:52 Der er 9 kommentarer og
1 løsning

problem med array i en klasse?

Kode:
class A{
    var $arr;
    function A(){
        $this->$arr = Array(1,2,3,4,5);
        $this->Fprint();
    }
    function Fprint(){
        print_r( $this->$arr );
        echo "<br>" . $this->$arr[0];
        $temp = $this->$arr;
        echo "<br>" . $temp[0];
    }
}
$a = new A();

Output:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array
1

Jeg forstår simpelthen ikke hvorfor den gør som den gør.
Jeg arbejder med class i PHP4.
Hvorfor vil den ikke udskrive element 0 i arrayet med koden: $this->$arr[0]?
Hvordan skal notationen så være?
Avatar billede erikjacobsen Ekspert
13. februar 2007 - 20:58 #1
echo "<br>" . $this->arr[0];
Avatar billede alexander_j Nybegynder
13. februar 2007 - 21:04 #2
'echo "<br>" . $this->arr[0];' udskriver slet ingenting.
Avatar billede plx Nybegynder
13. februar 2007 - 21:05 #3
du skal lige huske at fjerne $ alle steder, hvor du benytter ->$
Avatar billede alexander_j Nybegynder
13. februar 2007 - 21:06 #4
class A{
    var $arr;
    function A(){
        $this->arr = Array(1,2,3,4,5);
        $this->Fprint();
    }
    function Fprint(){
        print_r( $this->arr );
        echo "<br>" . $this->arr[0];
    }
}
$a = new A();
^^den virker - tak
Avatar billede alexander_j Nybegynder
13. februar 2007 - 21:06 #5
Kom med et svar :-D
Avatar billede erikjacobsen Ekspert
13. februar 2007 - 21:07 #6
Ingen point til mig, tak.
Avatar billede alexander_j Nybegynder
13. februar 2007 - 21:14 #7
Ok, men 1000 tak - det har virkelig irriteret mig det her problem.

Er det generelt, at man ikke skal have $ foran klassens eget variabelnavn? Synes nemlig, at de tutorials jeg har fundet på nettet alle sætter $-tegnet ind.

Synes egentlig, at klasser i php er lidt underlige - men det hænger nok sammen med at man ikke kan sætte varibeltype ved definering af variabler, ikke kan fastsætte variabeltyper i modtagne variabler i funktioner eller hvilken variabeltype der forventes returneret fra en funktion.
Avatar billede erikjacobsen Ekspert
13. februar 2007 - 21:29 #8
Det er lidt synd at du spilder din tid på klasser i PHP4. Det er først i PHP5 det begynder at ligne noget.
Avatar billede alexander_j Nybegynder
13. februar 2007 - 21:50 #9
ok - men hvordan er det med de forskellige udbydere - er de begyndt at tilbyde PHP5 efterhånden?
Avatar billede erikjacobsen Ekspert
13. februar 2007 - 22:00 #10
Ved det ikke - nogen gør ikke, nogen gør sikkert. Det står vel hvilke versioner de bruger af fx PHP, MySql osv. Og hvis det ikke står der, kan man jo bare holde sig væk ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester