Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Funkcja - modyfikowanie zmiennych globalnych

czwartek,

Funkcja - modyfikowanie zmiennych globalnych

W języku PHP domyślnie lokalne zmienne funkcji nie wpływają na wartość zmiennych poza nią, nawet jeśli nazwy są takie same. To zachowanie można zmienić. Przedstawiamy dwa sposoby.

Standardowo argumenty przekazywane są przez wartość i operacje wewnątrz funkcji na wpływają na pierwotną zmienną. Ten sposób najczęściej pozwala osiągnąć zamierzone cele. Istnieje jednak także metoda przekazywania argumentu przez referencję, wtedy „oryginalna” zmienna zostanie zmodyfikowana. Aby skorzystać z mechanizmu referencji, należy w nagłówku deklaracji funkcji umieścić przed nazwą parametru znak & (ampersand). Wtedy przekazany do funkcji argument będzie mógł ulec zmodyfikowany w znaczeniu globalnym. Zastosowana w przykładowej funkcji instrukcja return jest właściwie zbędna i została dołączona tylko dla łatwiejszej ilustracji działania mechanizmu.

<?php
   
    function iloczyn( &$a, $b) {
       $a = $a * $b;
       return $a;
    }

    $a = 3;

    echo iloczyn($a,3); // 9
    echo $a; // 9

    iloczyn($a,2);
    echo $a; // 18

?>

Druga prezentowana metoda jest uważana za bardzo złą praktykę programistyczną, jednak skoro istnieje taka możliwość, to warto ją znać. Wewnątrz funkcji do zmiennej globalnej można odwołać się dzięki instrukcji global. Możliwe jest potraktowanie w ten sposób kilku zmiennych, wtedy po słowie global należy wpisać ich nazwy oddzielone przecinkami.

<?php
   
    function iloczyn($b) {
       global $a;
       $a = $a * $b;
    }

    $a = 2;

    iloczyn(2);
    echo $a; // 4

    iloczyn(3);
    echo $a; // 12

?>

Udział wzięli

global

Artykuł: Teoria emocji kolorów

Teoria emocji kolorów

Artykuł: DRAM Speculative Leadoff

DRAM Speculative Leadoff

Artykuł: Burst Mode DMA

Burst Mode DMA

Artykuł: Tryby DMA

Tryby DMA

Artykuł: DMA w kontekście historycznym

DMA w kontekście historycznym

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły