Avatar billede kataka Nybegynder
26. marts 2007 - 22:02 Der er 7 kommentarer

__construct - hvornår køres denne?

Hvornår køres __construct? Kører den ved "new Klassenavn();" eller ved $variabelDerIndeholderÅbningAfKlasse->tilfældigFunktion();?

Og det smame med __destruct?
Avatar billede jakobdo Ekspert
26. marts 2007 - 22:21 #1
Den køres ved: $myClass = new KlasseNavn();

Du kan jo lave en test!

Prøv at lav:

class myClass{
public function __construct()
{
echo 'Jeg er construct<br>';
}
public function __construct()
{
echo 'Jeg er destruct<br>';
}
public function test()
{
echo 'Jeg er test<br>';
}
}

og så:
$myClass = new myClass();
Se hvad det giver.
og så:
$myClass->test();
Avatar billede windcape Praktikant
27. marts 2007 - 09:52 #2
du har en tastefejl jakob :)

<?php

class Test
{
  public function __construct() {
      echo "Test::__construct()\n";
  }

  public function __destruct() {
      echo "Test::__destruct()\n";
  }

  public function test() {
      echo "Test::test()\n";
  }
}

$test = new Test();
$test->test();

?>

Output:

Test::__construct();
Test::test()
Test::__destruct();
Avatar billede jakobdo Ekspert
27. marts 2007 - 09:59 #3
For meget copy/paste! :o(
Avatar billede windcape Praktikant
27. marts 2007 - 10:02 #4
Desuden skal det nok tilføjes at en destructor ikke har nogen rigtig betydning i php, da sockets og lign. alligevel automatisk lukkes når alt PHP er kørt.
Avatar billede dkfire Nybegynder
27. marts 2007 - 10:04 #5
Du kan da vel godt kalde unset($test), som så vil kalde __destruct().
Avatar billede windcape Praktikant
27. marts 2007 - 10:07 #6
dkfire: ja

P.S.

Der er en fejl i mit eksempel, da min 'test' function vil virke som en 2nd constructor, og derfor give en Stricts Standards fejl, under E_STRICT.

Navngiv den _test() istedet :)
Avatar billede dkfire Nybegynder
11. april 2007 - 12:46 #7
Hvis du fik den hjælp du skulle have, så luk spørgsmålet
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