några sidor på nätet om PHP programmering

Sök efter  
Börja här Uppgifter Testa dig själv Tips Sidokarta mm. Länkar Sök

Räckvidd Kontroll Konstanter

1.4.1 Räckvidd

Tag en titt på följande program:

<?php
    
# kommer att ge fel så jag kopplar bort all felhantering
    
error_reporting (0);

    
$siffra = 100;
    
    function
testarLite()
    {
        
$siffra = 0;
        
$texten = "Mångfald är bättre än enfald!";
        echo
"Skriver ut från funktionen<br />";
        echo
"\$siffra: " . $siffra . "<br />";
        echo
"\$texten: " . $texten . "<br />";
    }
    
# åberopa funktionen
    
testarLite();

    echo
"Skriver ut efter funktionen<br />";
    echo
"\$siffra: " . $siffra . "<br />";
    echo
"\$texten: " . $texten . "<br />";
?>
Listning 1.4.1.1 - samples/s28.php

Skriver ut från funktionen
$siffra: 0
$texten: Mångfald är bättre än enfald!
Skriver ut efter funktionen
$siffra: 100
$texten:
Resultat av listning 1.4.1.1

Observera att en variabel som skapas utanför en funktion inte syns i funktionen, och att en variabel som skapas i funktionen inte kommer att synas utanför funktionen. Det förstnämnda avviker från t.ex. VB, där globala variabler syns i alla funktioner.

För att komma åt globala variabler kan man skriva ordet global. Se nedanstående kod:

 

<?php

    $siffra
= 100;

    function
testarLite()
    {
        
# genom att skriva global före ett variabelnamn
        # så säger man att denna är global och skall
        # kommas åt i funktionen
        
global $siffra;

        
# man kan även skapa globala variabler i en funktion
        # men det är oftast en dålig idé
        
global $texten;
        
$texten = "HEPP";
        echo
"Skriver ut från funktionen<br />";
        echo
"\$siffra: " . $siffra . "<br />";
        echo
"\$texten: " . $texten . "<br />";
        
$siffra = 0;
    }
    
# åberopa funktionen
    
testarLite();

    echo
"Skriver ut efter funktionen<br />";
    echo
"\$siffra: " . $siffra . "<br />";
    echo
"\$texten: " . $texten . "<br />";
?>
Listning 1.4.1.2 - samples/s30.php

Skriver ut från funktionen
$siffra: 100
$texten: HEPP
Skriver ut efter funktionen
$siffra: 0
$texten: HEPP
Resultat av listning 1.4.1.2

En annan möjlighet är att använda sig av GLOBALS kollektionen enligt nedanstående exempel:

<?php

    $siffra
= 100;

    function
testarLite()
    {
        echo
"Skriver ut från funktionen<br />";

        
$GLOBALS["texten"] = "KALLE ";
        echo
"\$siffra: " . $GLOBALS["siffra"] . "<br />";
        echo
"\$texten: " . $GLOBALS["texten"] . "<br />";
        
$GLOBALS["siffra"] = 0;

    }
    
# åberopa funktionen
    
testarLite();

    echo
"Skriver ut efter funktionen<br />";
    echo
"\$siffra: " . $siffra . "<br />";
    echo
"\$texten: " . $texten . "<br />";
?>
Listning 1.4.1.3 - samples/s31.php

Skriver ut från funktionen
$siffra: 100
$texten: KALLE
Skriver ut efter funktionen
$siffra: 0
$texten: KALLE
Resultat av listning 1.4.1.3

 

   Börja härVariablerRäckvidd