webForumDet fria alternativet

Scope och variabler

2 svar · 183 visningar · startad av petergrennanet

petergrennanetMedlem sedan dec. 1999258 inlägg
#1

Om jag kallar pa en function() jag skrivit som inte returnerar nonting; kan jag da na dom variablerna pa nott sett dom variabler som skapas i funktionen? Funktionerna innehaller som ni ser 'echo'.

Typ, hur far man detta att fungera?

<?
function Testing() {
  if (1<2) { $size = "yes";  }
  echo "Some text and stuff";
}

function Testing2() {
 global $size; 
 if ($size = "yes") { echo "Found!" }
 echo "Some other stuff text";
}
?>

<td><? Testing(); Testing2() ?></td>

Ovanstande kod fungerar i PHP4, men gor den det i PHP3? Finns det nagra tydliga fallor?

------------------
¬ peterbe.com¬

[Redigerat av petergrennanet den 04 aug 2000]

[Redigerat av petergrennanet den 04 aug 2000]

nicclasMedlem sedan feb. 20001 050 inlägg
#2

Hejsan,

Det finns en bugg i ditt exempel som antagligen får dig att tro att detta fungerar, men det gör det inte, och skall inte göra!
if ($size = "yes") { echo "Found!" }
skriver alltid ut "Found!" då du inte gör någon jämförelse. Jämforelse kan du göra med ==, = gör en tilldelning, och en sådan är alltid sann!

Däremot går det att modifiera variabler inne i en funktion. Exempel:
<?
$text="www.allanyheter.com";
function byt(){
global $text;
$text="www.nic-sys.se";
}
echo $text;
byt();
echo $text;
?>
i övrigt fungerar scope:en som i C/C++.
Ok?
/nicclas ::: http://www.allanyheter.com - Nyhetsrubriker på DIN hemsida

[Redigerat av nicclas den 04 aug 2000]

woodiMedlem sedan feb. 20001 270 inlägg
#3

Amen.

------------------
woodi

Svenska FF1
www.johan-skog.nu

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)