Jak poprawnie przekazywać zmienne między plikami

0

Witam, może zacznę od kodu(znaleziony na stackoverflow):

index.php:

$name = 'Mark';
require('util.php');
print($text);

util.php:

$text = "Hello " . $name

Zawsze używałem takiej "struktury" i działało(i nadal działa ;-) ). Jednak po zainstalowaniu netbeans dostaje ostrzeżenie o nie zainicjalizowanej zmiennej.

Czy powyższy kod powinienem zamienić na poniższy?(wtedy znikają ostrzeżenia, ale dziwi mnie zastosowanie global)
index.php:

$name = 'Mark';
require('util.php');
global $text;
print($text);

P.S. Oczywiście wszystkie kody są w maksymalnym uproszczeniu.

0

Nie, nie powinieneś. Prawdopodobnie IDE zwraca ci uwagę na sam plik util.php, gdzie faktycznie, gdyby był on wywołany samodzielnie, zmienna $name byłaby niezainicjowana.

Pierwsza moja rada jest taka, żebyś wszystkie swoje dołączenia zewnętrznych plików php trzymał w jednym miejscu - na górze.
Druga to taka, żeby kod, który dołączasz nie wywoływał się automatycznie - zamknij go w funkcje. Dzięki temu unikniesz błędu o niezainicjowanej zmiennej mimo, że w tym pliku nie będzie jej definicji.

util.php

function GetText($name) {
    return 'Hello ' . $name;
}

index.php

require('util.php');
$name = 'Mark';
print GetText($name);

1 użytkowników online, w tym zalogowanych: 0, gości: 1