/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
classes newbie ....
Fra : -Martin-


Dato : 20-06-02 00:16

Jo jeg er lige startet for et par minutter siden, for at prøve at lære
classes ... Meeen hvor ska jeg starte ? (en side fx)

Men ellers så prøvede jeg at lave dette:

<?php

class hello
{
function verden() {
$t = new hello;
Return $t->world;
}

function world() {
Return "hello world";
}
}

$h = new hello;
print $h->verden();
?>

Men den returnere ikke noget ... Hvor er problemet?

 
 
Thomas Lindgaard (20-06-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 20-06-02 00:51

-Martin- <admin@DELETEnatten-i.dk> wrote in
news:e042husdncu4mf4s1ij7s3akbrk28ooa1b@4ax.com:

> Men ellers s† pr›vede jeg at lave dette:
>
> <?php
>
> class hello
> {
> function verden() {
> $t = new hello;
> Return $t->world;
> }
>
> function world() {
> Return "hello world";
> }
> }
>
> $h = new hello;
> print $h->verden();
> ?>
>

Prøv med sårn noget her:

<?php

   class Gudaus {
       var $ost;

       // Constructor (bliver kaldt ved new Gudaus())
       function Gudaus()
       {
           $this->lav_en_ost();

           echo $this->hent_osten();
       }

       function lav_en_ost()
       {
           $this->ost = "feta";
       }

       function hent_osten()
       {
           return $this->ost;
       }
   }

   $oste_objekt = new Gudaus();
   // Udskriver "feta" og returnerer en instans af klassen

   $oste_object->hent_osten();
   // Returnerer strengen "feta"

?>

Det blev vist lidt fjollet - men du kan da kigge lidt på php.net efter
noget rigtig info om klasser.

Mvh.
/Thomas

-Martin- (20-06-2002)
Kommentar
Fra : -Martin-


Dato : 20-06-02 02:13

><?php
>
>    class Gudaus {
>        var $ost;
>
>        // Constructor (bliver kaldt ved new Gudaus())
>        function Gudaus()
>        {
>            $this->lav_en_ost();
>
>            echo $this->hent_osten();
>        }
>
>        function lav_en_ost()
>        {
>            $this->ost = "feta";
>        }
>
>        function hent_osten()
>        {
>            return $this->ost;
>        }
>    }
>
>   $oste_objekt = new Gudaus();
>    // Udskriver "feta" og returnerer en instans af klassen
>
>    $oste_object->hent_osten();
>    // Returnerer strengen "feta"
>
>?>
>
>Det blev vist lidt fjollet - men du kan da kigge lidt på php.net efter
>noget rigtig info om klasser.

Måske er det fjollet, men lærerigt...

Jeg har ledt og ledt på php.net ... men kan ik lige finde siden...
Måske kan du hjælpe? - I øvrigt så fandt jeg denne side på
netcoders.dk den er faktisk ret god (kunne være andre var newbies

<http://www.netcoders.dk/articles.asp?mode=show_article&article_id=183&tech_id=2>

>
>Mvh.
>/Thomas


Ruben Hesselbæk (20-06-2002)
Kommentar
Fra : Ruben Hesselbæk


Dato : 20-06-02 07:25

--- klip ---
>
> Måske er det fjollet, men lærerigt...
>
> Jeg har ledt og ledt på php.net ... men kan ik lige finde siden...
> Måske kan du hjælpe? - I øvrigt så fandt jeg denne side på
> netcoders.dk den er faktisk ret god (kunne være andre var newbies
>
>
<http://www.netcoders.dk/articles.asp?mode=show_article&article_id=183&tech_
id=2>
>
> >
> >Mvh.
> >/Thomas
>

Prøv at se den her
http://www.phpbuilder.com/columns/rod19990601.php3

De har generelt meget gode artikler om mere eller mindre alt.

Venlig hilsen
Ruben Hesselbæk




Jesper Brunholm (20-06-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 20-06-02 08:35

-Martin- wrote:

>>Det blev vist lidt fjollet - men du kan da kigge lidt på php.net efter
>>noget rigtig info om klasser.
>
> Måske er det fjollet, men lærerigt...

jeps - og sjovt - selv min ("kode-er-kedeligt"-) kone syntes at det var
læs-værdigt

> Jeg har ledt og ledt på php.net ... men kan ik lige finde siden...

måske kan du med udgangspunkt i
<http://www.php.net/manual/en/ref.classobj.php>

få fat på noget...

Derudover så kan chm-helpfilen med fordel downloades - den er mindst
dobbelt så let at søge i...

venligst

Jesper Brunholm

--
Phønix - dansk folk-musik fra unge musikere - http://www.phonixfolk.dk


Bertel Lund Hansen (20-06-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-06-02 09:51

-Martin- skrev:

>Måske kan du hjælpe? - I øvrigt så fandt jeg denne side på
>netcoders.dk den er faktisk ret god (kunne være andre var newbies

Ved et hastigt blik ser den okay ud. Der var dog én ting jeg
studsede over:

   Hvis du laver en funktion med samme navn som klassen
   altså i dette tilfælde "function PersonData() {" vil
   denne blive udført hver gang du kalder andre funktioner,
   eller henter variabler fra objektet. Den slags funktioner
   kaldes for en "constructor", og kan sagtens undværes, men
   hvis du ønsker noget kode udført hver gang objektet
   bruges, er det løsningen.

Jeg kan vanskeligt tro at PHP adskiller sig fra Java og C++ på
det punkt.

En konstruktør kaldes *kun* første gang et objekt bliver
oprettet, ellers ikke. Det hedder en konstruktør (constructor) af
samme grund.

Hvis man ikke skriver én selv, vil der blive genereret en
automatisk som laver en absolut minimal initialisering af
objektet. Alle variable vil sandsynligvis (jeg er ikke helt kendt
med PHP endnu) være sat til 0.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Jonas Koch Bentzen (20-06-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 20-06-02 11:02

Bertel Lund Hansen wrote:
> -Martin- skrev:
>
>
>>Måske kan du hjælpe? - I øvrigt så fandt jeg denne side på
>>netcoders.dk den er faktisk ret god (kunne være andre var newbies
>
>
> Ved et hastigt blik ser den okay ud. Der var dog én ting jeg
> studsede over:
>
>    Hvis du laver en funktion med samme navn som klassen
>    altså i dette tilfælde "function PersonData() {" vil
>    denne blive udført hver gang du kalder andre funktioner,
>    eller henter variabler fra objektet. Den slags funktioner
>    kaldes for en "constructor", og kan sagtens undværes, men
>    hvis du ønsker noget kode udført hver gang objektet
>    bruges, er det løsningen.
>
> Jeg kan vanskeligt tro at PHP adskiller sig fra Java og C++ på
> det punkt.

Det gør det heller ikke. Ovenstående tekst er forkert. Jeg har lige
forsøgt mig med følgende script, og hvis ovenstående var rigtigt, ville
den skrive "I konstruktøren" tre gange - men den skriver det
selvfølgelig kun én gang.

<?php
class Test {
   var $noget = "Kurt<br/>\n";

   function Test() {
      echo "I konstruktøren.<br/>\n";
   }
   
   function testfunktion() {
      return "I testfunktion().<br/>\n";
   }
}

$test = new Test();
echo $test->noget;
echo $test->testfunktion();
?>


Jonas Koch Bentzen (20-06-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 20-06-02 11:21

Bertel Lund Hansen wrote:
> -Martin- skrev:
>
>
>>Måske kan du hjælpe? - I øvrigt så fandt jeg denne side på
>>netcoders.dk den er faktisk ret god (kunne være andre var newbies
>
>
> Ved et hastigt blik ser den okay ud. Der var dog én ting jeg
> studsede over:
>
>    Hvis du laver en funktion med samme navn som klassen
>    altså i dette tilfælde "function PersonData() {" vil
>    denne blive udført hver gang du kalder andre funktioner,
>    eller henter variabler fra objektet. Den slags funktioner
>    kaldes for en "constructor", og kan sagtens undværes, men
>    hvis du ønsker noget kode udført hver gang objektet
>    bruges, er det løsningen.

Der er et par småfejl i artiklen. Dem har jeg kommenteret på
http://netcoders.dk/articles.asp?mode=show_article&tech_id=2&article_id=183&submode=show_message&comment_id=art_183&message_id=54991.


Martin Mouritzen (20-06-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 20-06-02 11:32

After I finished the 3 Pan Galactic Gargle Blasters, Bertel Lund
Hansen <nospam@lundhansen.dk> just offered me, he muttered some weird
stuff, and I had to correct this gibberish:

>Jeg kan vanskeligt tro at PHP adskiller sig fra Java og C++ på
>det punkt.

Det gør det heller ikke. (Selvom OOP i PHP har MEGET langt igen før
det bliver bare nær så godt som Java (har ikke så meget kendskab til
C++)).

>En konstruktør kaldes *kun* første gang et objekt bliver
>oprettet, ellers ikke. Det hedder en konstruktør (constructor) af
>samme grund.

Det er korrekt.
--
Nano Martin Mouritzen Phone +45 27105580
Vesterbrogade 30C. 2. Programmer Advanced Simplicity
DK-8000 Århus martin@nano.dk http://www.nano.dk
Nano nu officiel dansk distributør af UltraEdit, se mere på websitet

Jonas Koch Bentzen (20-06-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 20-06-02 12:25

Martin Mouritzen wrote:
>
> OOP i PHP har MEGET langt igen før
> det bliver bare nær så godt som Java

Der er ikke så langt igen til god OOP, hvis man ser på de ændringer, der
er sket i PHP 4.3.0, som dog endnu er på udviklingsstadiet.

http://www.php.net/ZEND_CHANGES.txt


Martin Mouritzen (21-06-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 21-06-02 01:13

After I finished the 3 Pan Galactic Gargle Blasters, Jonas Koch
Bentzen <ingen.email@eksempel.dk> just offered me, he muttered some
weird stuff, and I had to correct this gibberish:

>Der er ikke så langt igen til god OOP, hvis man ser på de ændringer, der
>er sket i PHP 4.3.0, som dog endnu er på udviklingsstadiet.

Ja, det begynder at se bedre ud, og jeg ser allerede frem til 4.3.0

--
Nano Martin Mouritzen Phone +45 27105580
Vesterbrogade 30C. 2. Programmer Advanced Simplicity
DK-8000 Århus martin@nano.dk http://www.nano.dk
Nano nu officiel dansk distributør af UltraEdit, se mere på websitet

Christian Joergensen (20-06-2002)
Kommentar
Fra : Christian Joergensen


Dato : 20-06-02 11:43

On Thu, 20 Jun 2002 01:15:45 +0200, -Martin- wrote:

> function verden() {
> $t = new hello;
> Return $t->world;
> }

Tror det du mener er:

function verden() {
return $this->world()
}

eller også skal du simpelthen bare sætte nogle paranteser på:

function verden() {
$t = new hello;
return $t->world();
}

Det giver dog inden mening at lave endnu en forekomst af objektet?

--
Christian Jørgensen | Pity the poor egg: it only gets laid once.
http://www.razor.dk |

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste