Avatar billede -veile- Nybegynder
07. marts 2008 - 16:14 Der er 18 kommentarer og
1 løsning

OOP programmering

Hej

Jeg er efterhånden ved at nå et punkt hvor jeg gerne vil lære at lave OOP script, men der er en del som jeg er meget i tvilv om hvordan det fungere!

hvis jeg opretter en function som tjekker at et password er korrekt, ang. længde, og hvor mange tal osv. der skal være i den, hvordan kalder så den funktion frem.
Ved godt hvordan det gøres med if konstruktioner, men nu vil jeg gerne have det der OOP på plads.

Nogen som kender en god artikel som beskriver hvordan OOP fungere helt fra bunden?
Avatar billede dkfire Nybegynder
07. marts 2008 - 17:15 #1
funktioner generelt har ikke så meget med OOP at gøre. Du kan sagtens have funktioner uden OPP. Der i mod vil klasser og objekter være OOP.

En funktion :

function MyFunction( $parameter1 )
{
  //hvad skal funktionen gøre......


Funktionen klades:

MyFunction( $var );

Og hvis funktionen returnere noget:

$var2 = MyFunction( $var );

Og hvis du vil læse lidt om at lave funktioner:
http://dk2.php.net/manual/en/language.functions.php
Avatar billede -veile- Nybegynder
07. marts 2008 - 17:26 #2
jamen bare i det eks. du skriver,

MyFunction($parametre1)
{
// Noget her
}

så når funktionen skal kaldes, gøre det så ved at kalde MyFunction($parameter1) eller hvad for kan ikke lige se hvor $var går hen ?
Avatar billede dkfire Nybegynder
07. marts 2008 - 17:31 #3
Altså du kalder din egen funktion ligsom du kalder alle andre funktioner i php.
$var er kun for at symplolicere at du har en variabel som du giver din funktion som parameter. En funktion behøver dog ikke have en paramter, men kan også godt have flere end en parameter.
Jeg har kun lavet et eksempel på en funktion som, når den kaldes, skal modtage en parameter. Om den variabel som du giver til funktionen hedder $var eller andet er sådan set lige meget. Men du kan læse lidt mere om det på det link jeg sendte til dig.
Avatar billede dkfire Nybegynder
07. marts 2008 - 17:34 #4
$var bliver en parameter til min funktion MyFunction.
Når funktionen så skal bruge den værdi som $var indeholder, så skal den bruge variabel $parameter1.
Avatar billede -veile- Nybegynder
07. marts 2008 - 23:10 #5
det vil sige du udskriver den som $var(parameter1) eller hvad, det nemli noget af det som jeg ikke forstår så godt
Avatar billede dotnetnissen Nybegynder
07. marts 2008 - 23:22 #6
http://www.killerphp.com/tutorials/object-oriented-php/index.php

ovenstående er en letforståelig introduktion til OO PHP
Avatar billede -veile- Nybegynder
07. marts 2008 - 23:34 #7
jah det er det sikkert, men man er jo ny indtil man er expert
Avatar billede -veile- Nybegynder
08. marts 2008 - 22:32 #8
okay, hvad vis du nu jeg skal have en funktion til at tjekke om et password er langt nok,

kan eller skal det så skrives

function(validate_pass)
{
  if(strlen($_POST['password']) == 6)
  {
    echo "dit kodeord er forkort";
  }
}

Eller er det helt ved siden af ?
Avatar billede dkfire Nybegynder
08. marts 2008 - 22:57 #9
Nej, det er helt ved siden af.
Har du overhoved læst det link jeg skrev i starten ??

En funktion erklæres således:

function FUNKTIONSNAVN( PARAMETRE )
{
    KODE
}
Avatar billede -veile- Nybegynder
09. marts 2008 - 00:22 #10
hov, fejl ville også ha skrivet

function valid_pass($pass)
{
    if(strlen($_POST['password']) == 6)
  {
    echo "dit kodeord er forkort";
  }
}

men selve if kommandoen , vil den fungere i funktionen når jeg kalder den ?
Avatar billede nielle Nybegynder
09. marts 2008 - 07:51 #11
Din if-funktion fungere på akkurat samme måde der som aller andre steder.

Men:

1) Hvorfor sender du argumentet $pass til funktionen hvis den ikke bruger det?

2) Det er ikke helt pænt OOP at lade funktionen udskrive noget - for så kan du kun bruge den i en bestemt sammenhæng ... du kan f.eks. ikke bruge den i det tilfælde hvor at du ikke ønsker at udskrive noget, men bare at sende brugeren et andet sted hen.

I stedet bør den bare returenere true eller false alt efter resultatet. Og så kan du det sted i koden hvor den kaldes vælge at lade være med at udskrive eller ej:

class DinKlasse
{

function valid_pass($pass)
{
    if (strlen($_POST['password']) == 6)
    {
        return false;
    }

    return true;
}

...

$minKlasse = DinKlasse();

if (! $minKlasse->("Eksperten")) {
    echo "dit kodeord er forkort";
}
Avatar billede -veile- Nybegynder
09. marts 2008 - 14:54 #12
kan jeg få lidt mere forklaring på den if-funktion du skriver nederst i dit eks. for kan ikk helt forstå hvordan den finder frem til at kodeordet er forkort :S
Avatar billede dkfire Nybegynder
09. marts 2008 - 14:54 #13
Og lige en rettelse til nielle:

$minKlasse = DinKlasse();

if (! $minKlasse->valid_pass("Eksperten")) {
    echo "dit kodeord er forkort";
}
Avatar billede dotnetnissen Nybegynder
09. marts 2008 - 15:03 #14
skal
if (! $minKlasse->("Eksperten")) {
    echo "dit kodeord er forkort";
}
ikke være

if (!$minKlasse->vald_pass("Eksperten")){
    echo "dit kodeord er for kort";
}
?

derudover:

if (strlen($_POST['password']) == 6)

checker vi ikke om den er kortere end 6 eller ej?

så skal der vel stå


if (strlen($_POST['password']) < 6)

eller tager jeg helt fejl?
Avatar billede dotnetnissen Nybegynder
09. marts 2008 - 15:04 #15
hov.. første er rettet af dkfire ;-)
Avatar billede nielle Nybegynder
09. marts 2008 - 15:06 #16
Jeg beklager ... den gik lige en smule for hurtigt der. :^)
Avatar billede -veile- Nybegynder
09. marts 2008 - 23:49 #17
okay, jeg ser om jeg kan finde af at lære det med objecter og det ,

så dkfire, du kan lægge et svar
Avatar billede dkfire Nybegynder
10. marts 2008 - 12:08 #18
Jamen jeg lægger et svar. Håber du har lært lidt, ellers må du stille et spørgsmål igen, så skal vi nok forsøge at hjælpe dig.
Avatar billede -veile- Nybegynder
11. marts 2008 - 18:23 #19
Jah, det er jo bare at gi sig tid til at sæge på Google, og så læse lidt
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