Avatar billede bentblod Nybegynder
18. juni 2010 - 20:07 Der er 7 kommentarer

kontakt til en variable i roden fra en function

Hej

Jeg har fundet det lidt underligt at jeg ikke kan få fat i en variable fra en function af.

Et meget simpelt eksempel:

<?php

$value = "test";

function getValue(){
    return $value;
}

function setValue($value1){
    $value = $value1;
}
?>

Hvordan kan det være at jeg ikke kan få fat i $value som er i roden? Hvordan skal man ellers skrive det?

Det er nok mega simpelt men sådan er det jo nogen gange :)
Avatar billede erikjacobsen Ekspert
18. juni 2010 - 20:19 #1
$value = "test";

function getValue(){
    global $value;
    return $value;
}
Avatar billede erikjacobsen Ekspert
18. juni 2010 - 20:20 #2
Avatar billede bentblod Nybegynder
18. juni 2010 - 20:27 #3
Tænkte nok det var super simpelt :) takker. Skriver du lige som svar? :)
Avatar billede arne_v Ekspert
18. juni 2010 - 21:09 #4
Generelt boer man nok forsoege at undgaa global.
Avatar billede zynzz Praktikant
19. juni 2010 - 04:47 #5
Som arne_v skriver bør man undgå global, send istedet variablen med i funktionen...
Avatar billede erikjacobsen Ekspert
19. juni 2010 - 11:15 #6
Jeg samler slet ikke på point, tak.

Og det var, som du kan læse, den tekniske løsning, men der er en tendens til at udstrakt brug af "global" giver uoverskuelig kode. Som anført kan man tage med som parameter, eller man kan skrive sine funktioner i klasser (Objektorienteret programmering) - alt sammen for at give overskuelighed og læselig kode.
Avatar billede bentblod Nybegynder
19. juni 2010 - 13:16 #7
Havde sendt den med i functioner hvis det var så nemt i mit tilfælde, men er det bare ikke. Nu er det så også kun 1 variable jeg bruger som global variable og kun adgang til at hente og skrive i den via functioner. Så der er styr på det :)

Mange tak for hjælpen
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