Arne Skrevet 16. januar 2006 Skrevet 16. januar 2006 Kan noen fortelle meg hva en klasse (class) er? Prøv å hold dere til topic.
Loomy Skrevet 16. januar 2006 Skrevet 16. januar 2006 A class is a collection of variables and functions working with these variables. Er ikke værre enn det.
Arne Skrevet 16. januar 2006 Forfatter Skrevet 16. januar 2006 Kan du gi et eksempel? Hvordan kan det brukes?
luser32 Skrevet 16. januar 2006 Skrevet 16. januar 2006 Her er en klasse for en gjestebok jeg har laget, ganske simpelt - men det funker:) <?php class gjestebok { function display_prev_next() { include 'dbconnect.php'; $result = mysql_query(" SELECT id FROM gjestebok ",$dbc); if (!$result) { echo("<p>Feil i spørring: " . mysql_error() . "</p>"); exit(); } $innlegg = mysql_num_rows($result); $innlegg_per_side = 20; if (!isset($_GET['fra'])) { $fra = 0; } else { $fra = $_GET['fra']; } $til = ($fra + $innlegg_per_side); $fram = ($fra + $innlegg_per_side + 1 > $innlegg ? false : true ); $tilbake = ($fra - $innlegg_per_side < 0 ? false : true); $fra_tilbake = ($fra - $innlegg_per_side); $fra_fram = ($fra + $innlegg_per_side); if ($tilbake == true) { $tilbake_klikk = "<a href='?p=gjestebok&fra=$fra_tilbake' >Tilbake</a>"; } else { $tilbake_klikk = "Tilbake"; } if ($fram == true) { $fram_klikk = "<a href='?p=gjestebok&fra=$fra_fram' >Frem</a>"; } else { $fram_klikk = "Frem"; } echo "<p align='center' >" . $tilbake_klikk . " | " . $fram_klikk . "</p>"; } function display_gjestebok_form() { setlocale(LC_ALL, 'no_NO', 'nor_nor'); ?> <div align="center"> <div id="cbox_top"> <div id="cbox_cnt" align="left"> <strong>Ny kommentar </strong> </div> <div id="cbox_cntsub" align="left">Skriv et nytt innleg</div> </div> <div id="cbox_mid"> <div id="cbox_main"> <div align="left"> <form action="?p=legg_til_kommentar" method="post" nSubmit="return disableForm(this);" style="display:inline; "> <input type="hidden" name="dato" value="<?php echo date(' j F Y H:i:s '); ?>"> <input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>"> <strong>Navn:</strong><br /> <input type="text" size="20" name="navn" value="Anonym"><br /> <strong>Kommentar:</strong><br /> <textarea name="kommentar" class="textarea" cols="40" rows="6"></textarea> <br /><br /> <input type="submit" name="submit" class="submit" value="Post ny kommentar"></form> </div> </div> </div> </div> <? } function display_gjestebok() { $gjestebok = new gjestebok(); $gjestebok->display_prev_next(); $innlegg_per_side = 20; if (!isset($_GET['fra'])) { $fra = 0; } else { $fra = $_GET['fra']; } $til = ($fra + $innlegg_per_side); include 'dbconnect.php'; $bbcode = new bbcode(); $result = mysql_query(" SELECT * FROM gjestebok ORDER BY ID DESC LIMIT $fra,$til ",$dbc); if (!$result) { echo("<p>Feil i spørring: " . mysql_error() . "</p>"); exit(); } while ($myrow = mysql_fetch_array($result)) { ?> <div align="center"> <div id="cbox_top"> <div id="cbox_cnt" align="left"><strong>Skrevet av: <?php echo strip_tags($myrow["navn"]); ?></strong></div> <div id="cbox_cntsub" align="left">Skrevet: <?php echo $myrow["dato"]; ?></div> </div> <div id="cbox_mid"> <div id="cbox_main" align="left"> <?php //$bbcode->bbcode_kommentar(); $kommentar = $myrow["kommentar"]; $bbReplace = array ('/(\[[Bb]\])(.+)(\[\/[Bb]\])/','/(\[url=)(.+)(\])(.+)(\[\/url\])/'); $bbReplacements = array ('<b>\\2</b>','<a href="\\2">\\4</a>'); $kommentar = preg_replace($bbReplace, $bbReplacements, $kommentar); echo nl2br($kommentar); ?> </div> </div> </div> <?php } } function add_coment_gbook() { setlocale(LC_ALL, 'no_NO', 'nor_nor'); $submit = $_POST['submit']; $ip = $_POST['ip']; $kommentar = strip_tags($_POST['kommentar']); $navn = strip_tags($_POST['navn']); $dato = $_POST['dato']; ?> <head> <meta http-equiv="Refresh" content="2;URL=?p=gjestebok"> </head> <?php // Connect to the database server include 'dbconnect.php'; $sql = "INSERT INTO gjestebok (navn, kommentar, dato, ip) VALUES ('$navn','$kommentar', '$dato', '$ip')"; $result = mysql_query($sql); if(!$result) { print "feil i spørring: $sql<br />".mysql_error(); } echo "<p>Kommentaren er lagt til!<br />"; echo "Redirecting...</p>"; } } ?> Som du ser så er en klasse (gjestebok) en samling av diverse funskjoner(display_gjestebok()osv.) og variabler:)
King Saul Skrevet 16. januar 2006 Skrevet 16. januar 2006 Bare for å si det lett, så er en klasse et objekt, til forskjell fra en funksjon. En funksjon er, som vi alle vet: <?php // Funksjon function funksjon_for_ett_eller_annet($param1, $param2 /* OSV. */, $param3) { if ($param3 = "pluss" || $param3 = "+") { print $param1 + $param2; } if ($param3 = "minus" || $param3 = "-") { print $param1 - $param2; } if ($param3 = "gange" || $param3 = "*") { print $param1 * $param2; } if ($param3 = "dele" || $param3 = "/") { print $param1 / $param2; } } ?> Det samme kan gjøres med en klasse <?php class Klasse_for_ett_eller_annet { var $param1; var $param2; var $param3; function regn_ut() { if ($this->param3 = "pluss" || $this->param3 = "+") { print $this->param1 + $this->param2; } if ($this->param3 = "minus" || $this->param3 = "-") { print $this->param1 - $this->param2; } if ($this->param3 = "gange" || $this->param3 = "*") { print $this->param1 * $this->param2; } if ($this->param3 = "dele" || $this->param3 = "/") { print $this->param1 / $this->param2; } } } ?> Disse to kalles på litt forskjellig måte: funksjon: <?php funksjon_for_ett_eller_annet(3, 5, "pluss"); ?> Mens klassen: <?php $klasse = new Klasse_for_ett_eller_annet; $klasse->param1 = 3; $klasse->param2 = 5; $klasse->param3 = "pluss"; // Regn ut $klasse->regn_ut(); ?> Man kan selvfølgelig, istedetfor å måtte deklarere variablene, gjøre slik: <?php class Klasse_for_ett_eller_annet { var $param1; var $param2; var $param3; // Denne funksjonen kjøres når man lager en ny eksistens av klassen function Klasse_for_ett_Eller_annet($param1, $param2, $param3) { // Jaja $this->param1 = $param1; $this->param2 = $param2; $this->param3 = $param3; } function regn_ut() { if ($this->param3 = "pluss" || $this->param3 = "+") { print $this->param1 + $this->param2; } if ($this->param3 = "minus" || $this->param3 = "-") { print $this->param1 - $this->param2; } if ($this->param3 = "gange" || $this->param3 = "*") { print $this->param1 * $this->param2; } if ($this->param3 = "dele" || $this->param3 = "/") { print $this->param1 / $this->param2; } } } ?> Kalles slik: <?php $klasse = new Klasse_for_ett_eller_annet(3, 5, "pluss"); $klasse->regn_ut(); Håper det forklarte problemet!
Torbjørn Skrevet 16. januar 2006 Skrevet 16. januar 2006 hva med å vise kode som faktisk demonstrerer hva du kan oppnå med klasser, istedet for bare å vise klasser som gjør det samme som en enkelt funksjon klarer?
mikaelandre Skrevet 16. januar 2006 Skrevet 16. januar 2006 Kan noen fortelle meg hva en klasse (class) er?Prøv å hold dere til topic. 5449068[/snapback] Kan prøve: En klasse er en beskrivelse av et objekt. Klassen "Mobil" kan feks ha variablene "merke", "farge" og "størrelse" og den kan ha funksjonene "mottaSamtale" og "ringSamtale", "sendSms". Da vet du at alle objekter av typen mobil har disse variablene og funksjonene, men verdien for hver variabel kan variere fra objekt til objekt. Det er en veldig praktisk måte å organisere informasjon på slik at det blir mest mulig likt virkeligheten.
Arne Skrevet 17. januar 2006 Forfatter Skrevet 17. januar 2006 Takk, men er det ikke mulig å bruke et array der?
Torbjørn Skrevet 17. januar 2006 Skrevet 17. januar 2006 jo, det er et alternativ. for bare å samle variable, kan du godt bruke et array. objekter kan også ha metoder, f.eks: $m = new Mobil("nokia"); $m->ring(12345678); det kan ikke arrays.
Arne Skrevet 17. januar 2006 Forfatter Skrevet 17. januar 2006 Er en klasse nesten en stor liste med funsjoner?
mikaelandre Skrevet 17. januar 2006 Skrevet 17. januar 2006 Er en klasse nesten en stor liste med funsjoner? 5453920[/snapback] nei, en klasse er en samling av funksjoner(metoder) og variabler. det meste du kan gjøre med klasser kan også løses på andre måter, men det blir som regel mye enklere å holde oversikt når du bruker klasser, siden det er mer likt hvordan vi ser verden med objekter. det du ikke kan løse uten klasser, eller som ihvertfall blir veldig vanskelig, er arv, polymorfi osv., men det er vanskelig å forklare hva det er når du ikke vet hva en klasse er...
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå