|
| Problem med funktion/variabel Fra : Holger Danske |
Dato : 06-07-03 21:48 |
|
Hejsa
Jeg har følgende kode/html:
----------
<?php
// Initialisering af en variabel som anvendes på siden.
$SomeVariable = 123;
// Ovenstående variablen skal anvendes i denne funktion. I dette
// eksempel har dog valgt blot at udskrive den, idet det giver det
// samme. Nemlig at jeg ikke kan "få fat" i værdien.
function DoSomething() {
echo $SomeVariable;
}
?>
<html>
....
<?php
// Kalder ovenstående funktion.
DoSomething;
?>
....
</html>
----------
Ved kald af DoSomething udskrives ikke 123 og jeg kan simpelthen ikke
forstå hvorfor. Nogen som kan være behjælpelig? På forhånd tak!
| |
Martin C. Petersen (06-07-2003)
| Kommentar Fra : Martin C. Petersen |
Dato : 06-07-03 22:18 |
|
"Holger Danske" <no@mail.thx> skrev i en meddelelse
news:MPG.1972a954fba060d1989691@news.inet.tele.dk...
> $SomeVariable = 123;
>
> // Ovenstående variablen skal anvendes i denne funktion. I dette
> // eksempel har dog valgt blot at udskrive den, idet det giver det
> // samme. Nemlig at jeg ikke kan "få fat" i værdien.
> function DoSomething() {
> echo $SomeVariable;
> }
> ?>
http://dk.php.net/manual/en/language.variables.scope.php
Martin
| |
Martin Sveegaard (06-07-2003)
| Kommentar Fra : Martin Sveegaard |
Dato : 06-07-03 22:23 |
|
On Sun, 6 Jul 2003 22:48:01 +0200, Holger Danske <no@mail.thx> wrote:
>Hejsa
>
>Jeg har følgende kode/html:
>
>----------
><?php
> // Initialisering af en variabel som anvendes på siden.
> $SomeVariable = 123;
>
> // Ovenstående variablen skal anvendes i denne funktion. I dette
> // eksempel har dog valgt blot at udskrive den, idet det giver det
> // samme. Nemlig at jeg ikke kan "få fat" i værdien.
> function DoSomething() {
> echo $SomeVariable;
> }
>?>
><html>
>...
><?php
> // Kalder ovenstående funktion.
> DoSomething;
>?>
>...
></html>
>----------
>
>Ved kald af DoSomething udskrives ikke 123 og jeg kan simpelthen ikke
>forstå hvorfor. Nogen som kan være behjælpelig? På forhånd tak!
Variabler i funktioner er lokale i den enkelte funktion, medmindre du
definerer dem som globale. Så du skal enten gøre sådan:
<?
$SomeVariable = 123;
// Ovenstående variablen skal anvendes i denne funktion. I dette
// eksempel har dog valgt blot at udskrive den, idet det giver det
// samme. Nemlig at jeg ikke kan "få fat" i værdien.
function DoSomething() {
global $SomeVariable;
echo $SomeVariable;
}
// Kalder ovenstående funktion.
DoSomething();
?>
-----------------
Eller sådan:
<?
$SomeVariable = 123;
// Ovenstående variablen skal anvendes i denne funktion. I dette
// eksempel har dog valgt blot at udskrive den, idet det giver det
// samme. Nemlig at jeg ikke kan "få fat" i værdien.
function DoSomething($LocaleVariable) {
echo $LocalVariable;
}
// Kalder ovenstående funktion.
DoSomething($SomeVariable);
?>
Bemærk osse at du skal bruge paranteser efter funktionsnavnet, da det
ellers bliver betragtet som en konstant.
MVH Martin S
| |
|
|