11. august 2005 - 21:07Der er
24 kommentarer og 1 løsning
Objekt-orienteret
Hej Eksperter.
Jeg har programmeret PHP i et par år nu, og føler efterhånden at jeg er blevet ganske god til det. Men jeg er ikke tilfreds med den måde jeg koder det på. Jeg vil gerne tættere på den facon som jeg kender fra C# .NET, hvor jeg kan adskille GUI fra den egentlige logik. Dette mener jeg delvist at kunne opnå med et objekt baseret system. Godt nok ikke med objekter til data, men som klasser med funktioner. På den måde kan jeg forhåbentligt adskille det "egentlige" system fra den grafiske tilgang.
Jeg kunne i den forbindelse godt tænke mig at høre lidt om, hvordan jeg bør gribe dette an. Jeg ser gerne at der optræder så lidt PHP kode i mine HTML filer som muligt. Men det er til gengæld ikke helt nemt. Der skal jo både hentes data fra forms, udskrives data osv. Men jeg kan i det mindste spare en masse kode i toppen af mine sider, hvor jeg plejer at validere mine data.
Men allerede nu er jeg stødt på et problem. Af min kode nedenfor fremgår et simpelt eksperiment - og det virker selvfølgelig ikke. Jeg får en fejl i linien 'var (string)$output;'. Hvordan kan det være? Jeg har normalt ikke erklæret mine variabler med 'var' før. Men jeg har set at man gør det i andre eksempler på nettet. Og så fandt jeg i øvrigt også et eksempel hvor variablen tilsyneladende typecastes til en type (string). Men vil det betyde at jeg reelt får en string, og får jeg en int når jeg bruger (integer). Vil jeg kunne smide tekst i en sådan integer? Mig bekendt er PHP ikke ligefrem et type-stærkt sprog :)
class UserAccounts { function Test($user, $regkey) { var (string)$output;
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.
Jeg får i øvrigt fejl med 'var $output' på klassen : Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in ~\UserAccounts.php on line 32
Bruger jeg i stedet 'private $output', fungerer det fint.
Det lykkedes sørme. Mange tak for det :) Ser dog en anelse skummelt ud med variabler uden $. Men sådan er det åbenbart :) Nu mangler jeg blot at finde ud af, hvor 'var' bruges korrekt. For i virkeligheden har jeg ikke brug for at definere variabler uden for funktionerne. Det var dog rart at finde løsningen alligevel, så jeg ikke står med problemet en anden dag :)
Altså man type-caster når en variabel har en anden type end det man ønsker bruge! :o) Hvis vi f.eks. siger: $integer = 1; $streng = (string)$integer; Så tvinger vi integer til at blive en streng... (sådan nogenlunde)
Yep, den er jeg med på. Men burde jeg kunne smide tekst i en variabel jeg netop har type casted til en int ? Og hvad er ideen med type casting i PHP, når sproget alligevel ikke er typestærkt ? Forsøger lige at hitte rede i det grundlæggende :)
Måden du kan adskille det på er templates. Der findes nogen forskellige systemer, men jeg bruger den indbygget XML funktion. (http://dk.php.net/xml)
Hvis du bruger XML metoden, kan du adskille dit PHP og HTML 100%. Man bruger PHP til at lave et XML dokument. Så bruger du XSLT til at parse det til HTML. Det tager en lille smule længere tid at kode, og en god portion tid at sætte sig ind i, men jeg har erfaret at på lidt større systemer bliver du glad for det.
Synes godt om
Ny brugerNybegynder
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.