Avatar billede newbie_dk Nybegynder
01. juni 2006 - 10:32 Der er 19 kommentarer og
1 løsning

Gør en metode parameter til en global variabel.

Hvordan gør jeg en metode parameter til en global variabel?

f.eks.

function hej($parameter)
{

}

Jeg vil gerne benytte $parameter i en anden metode i samme klasse..
Avatar billede tfswebguy Nybegynder
01. juni 2006 - 10:38 #1
global $parameter;

Ved dog ikke med sikkerhed...
Avatar billede newbie_dk Nybegynder
01. juni 2006 - 10:40 #2
det virker ikke.. har prøvet
Avatar billede tfswebguy Nybegynder
01. juni 2006 - 10:41 #3
hmm okay.. melder pas så, hehe
Avatar billede Slettet bruger
01. juni 2006 - 10:41 #4
Forstår ikke helt de spørgsmål, men der hvor du kalder de funktion 'hej' der skal du jo skrive de parameter f.eks. hej('min test tekst');
Og på den måde for den jo parameteret
Avatar billede newbie_dk Nybegynder
01. juni 2006 - 10:45 #5
det jeg mener er at jeg har oprettet en klasse.. og i constructeren er der givet nogle parametre..

Disse vil jeg gerne benytte i andre metoder, uden at skulle give dem hver gang...

Er det vireligt ikke muligt.. Hvad nu hvis man vil regne med værdier i en klasse, kan man ikke gemme dem i klassen og så bruge dem i de forskellige metoder?
Avatar billede Slettet bruger
01. juni 2006 - 10:59 #6
Når på den måde.
Så skal du i din funktioner skrive:
global $parameter;

Men tror så du skal have en variabel i din klasse som du sætter lige med det parameter du angiver til din constructor, for er ikke sikker på om du kan trække på parameteret fra constructoren.
Avatar billede Slettet bruger
01. juni 2006 - 11:02 #7
hvis funktionen hej er i en klasse, kan du lave det som et objekt.

class foo {
    var $parameter;

    function hej($r) {
        // gør noget
        $this->parameter = $r;
    }
}
Avatar billede newbie_dk Nybegynder
01. juni 2006 - 11:03 #8
takker.. det virker..
Avatar billede Slettet bruger
01. juni 2006 - 13:00 #9
Du kan også bruge:

class foo {
  var $parameter;

  function bar() {
    return $this->parameter;
  }
}

$foo = new foo('Test');
echo $foo->bar(); // Udskriver "Test"
Avatar billede Slettet bruger
01. juni 2006 - 13:21 #10
Sådan var det:


<?php
class foo {
    var $myParameter;

    function foo($myParameter) {       
        $this->myParameter = $myParameter;
    }
   
    function bar() {
        return $this->myParameter;
    }
}

$foo = new foo('Test');
echo $foo->bar(); // Udskriver "Test"
?>
Avatar billede Slettet bruger
01. juni 2006 - 13:31 #11
super :-)
Du får et svar herfra.

Og som wicez siger er der naturligvis også andre måder at gøre det på.
Avatar billede Slettet bruger
01. juni 2006 - 13:47 #12
Du kan også gøre sådan, hvis du ikke vil bruger klasser:

<?php
$parameter = 'Test';

function foo() {
  global $parameter;
  return $parameter;
}

echo foo();
?>
Avatar billede Slettet bruger
01. juni 2006 - 15:47 #13
Faktisk også det jeg skrev... alt det de skriver, som de så får point for selvom jeg var den første.
Mit var bare ikke lige så detaljeret som de andres.
Avatar billede Slettet bruger
01. juni 2006 - 15:52 #14
coldgate: Dit var så kludret og indviklet skrevet, at ingen andre end dig selv var i stand til at læse det. At du vælger at undlade eksempler i din forklaring, gør den heller ikke lettere forståelig.
Avatar billede Slettet bruger
01. juni 2006 - 17:25 #15
wicez> Lige meget... Men måske kun lige dig der ikke kan læse?
Avatar billede Slettet bruger
01. juni 2006 - 18:42 #16
Det var da en helt utrolig attitude du render rundt med. Hvis du fra starten havde forklaret dig ordentligt, ville det ikke være nødvendigt for hverken cypermann eller mig at vise, hvordan newbie_dk kunne få løst sit problem.
Avatar billede Slettet bruger
01. juni 2006 - 19:17 #17
Fiktive points er jo ikke alt her i livet :-)

Et eksempel siger mere end ord, og gør ting mere forståeligt.
Det er naturligvis kun en antagelse, men jeg går ud fra newbie_dk er ny indenfor OOP, og derfor kan det være svært at forstå ud fra tekst.

Noget helt andet er global egentlig ikke høre hjemme i en klasse, da man jo blot vil skrive til en statisk variabel i klassen fra sin constructor. Hvilket også gør ens script noget mere overskueligt.

Din løsning virkede måske, men om den var forståelig og korrekt kan diskuteres.
Men bevars, lad os stoppe diskusionen om fiktive points, for det er jo i virkeligheden ikke hvad netværket eksperten drejer sig om, men i stedet at skabe et stort netværk mellem personer med forskellige kompetencer.

Så tag mine points, hvis du mener det er korrekt :-)
Avatar billede Slettet bruger
01. juni 2006 - 19:32 #18
Det er på ingen måde pointsne, jeg farer op over. Det er coldgate's reaktion på, at vi bruger tid på at konstruere eksempler til newbie_dk. Jeg kan på ingen måde se, hvordan du kan føle at to liniers uforståelig tekst er ligeså lærerigt som et kodeeksempel der netop gør det, spørgsmålet drejer sig om.

Du må såmænd også gerne tage mine points, coldgate, hvis det har en så stor betydning for dig.
Avatar billede Slettet bruger
01. juni 2006 - 19:59 #19
cypermann> Vil ikke have din points da... :D
Det må I undskylde, I har ret... Beklager dette...

Håber I kan tilgive mig..
Avatar billede Slettet bruger
01. juni 2006 - 20:10 #20
hehe du behøver nu ikke at spørge om tilgivelse :-)
Vi forsøger jo allesammen at hjælpe.

Fortsat god aften.
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