Ny til php klasser - vudering?

Tags:    php

<< < 12 > >>
Hej.

Jeg er lige begyndt og læse lidt på php klasser.

Jeg har tidligere erfaring fra C# og andre sprog med klasser, og vil derfor høre om dette er den korrekte måde og lave klasser på?

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 30.11.2008 18:35 af Bruger #11386
Du skal nok ikke lade dit kodeord være synligt for alle.



Der fik du mig godt nok op af stolen :P



Jeg er ikke sikker på om PHP vil lade dig deklarere variabler uden at give dem en eller anden form for indhold(eftersom det er typesvagt tager det bare typen af det nuværende indhold - hvis ikke der er noget indhold kunne jeg forestille mig at den brokker sig over ikke at have nogen type), men jeg skal ærligt indrømme at jeg ikke har testet det.

Men, hvis du bruger __destruct(PHP5 only), kan du ligeså godt bruge __construct(PHP5-style) istedet for at have en metode med samme navn som klassen(PHP4-style). Eftersom din destructor ikke er bagudkompatibel, er det snørklet at gøre din constructor bagudkompatibel :)



@Per - man kan sagtens gøre som ovenstående mht. variablerne - i og med at det er typesvagt så kan variablerne jo altså også skifte typer, så det betyder ikke rigtig noget...

Som sagt dog, så vil det være mere "korrekt" at bruge __construct some konstruktør, dog er det du har gjort også fuldt ud lovligt, men primært mht. at være bagudkompitabelt med PHP4.



Men Per, kan du give et eksempel på hvad du ellers ville have gjort ved variablerne?

Jeg holder mig til __construct, det var mere en vane og give functionen samme navn som class navnet (AS3 :D)



Du kan sætte variablerne til NULL



Men hvad ville fordelen i det være?

Skulle en variablen der bliver oprettet uden indhold ikke være NULL fra start af??



Der er ikke rigtig nogen fordel som sådan, udover at du ved hvilken værdi de har fra start.

Variabler i PHP har ikke nogen type - den værdi de holder vil dog have en type.



Men Per, kan du give et eksempel på hvad du ellers ville have gjort ved variablerne?

Det er ikke nødvendigt hvis det andet virker for dig. Jeg har bare aldrig oplevet at have brug for at deklarere en klassevariabel(fx private $default_template = '300spartans.tpl'; ), uden at give den indhold - og at jeg heller aldrig havde set det, fik mig til at studse over at du havde gjort det. Men hvis det virker for dig, er der jo ingen grund til at ændre det :)



Indlæg senest redigeret d. 01.12.2008 11:37 af Bruger #8223
#Casper - Har lige fået læst inde php.net og der står der at hvis en variabel ikke har nogen værdi så er den NULL, så bare glem det.

#Per - Hvis han vil bruge variablen uden for funktionen så skal han vel deklare den for at kunne bruge den i en anden funktion.



<< < 12 > >>
t