[php]Zasięg zmiennych znajdujących się w plikach inkludowany

0

Witam!

Oto moje problemy:

inc.php

<?php
$zmienna="x";
?>

<b>klasa.php</b>
<php>
<?php
 class Klasa{

 function Pokaz(){
 echo($zmienna);
 }

 }
?>

index.php

<?php
include "inc.php";
include "klasa.php";

$klasa=new Klasa();
$klasa->Pokaz();
 }
?>

Chciałbym aby $zmienna była widoczna dla klasy.</cpp></php>

0

Post poprawiony...

inc.php

<?php
$zmienna="x";
?>

klasa.php

<?php
 class Klasa{

 function Pokaz(){
 echo($zmienna);
 }

 }
?>

index.php

<?php
include "inc.php";
include "klasa.php";

$klasa=new Klasa();
$klasa->Pokaz();
 }
?>

Chciałbym aby $zmienna była widoczna dla klasy.

0

global $zmienna; //w funkcji pokaz()

poza tym nie rób tak ;) To zły styl programowania ;) (odwoływanie się w klasie do zmiennych globalnych)

0

To się nazywa zaciemnienie umysłu... A ja wstawiałem "global $zmianna;" przez definicją klasy [glowa]
Jeśli napisałeś, że to zły styl programowania to chętnie wysłucham Twojej opinii jak zrobić to lepiej :)
Bo w pliku inc.php mam zapisane w tablicy $cfg[] ustawienia strony (ścieżki do plików itd). A w klasie odwołuje się do tych ścieżek praktycznie w każdej funkcji, więc wstawianie w każdym miejscu "global" jest rzeczywiście niewygodne.

0

przepisz zmienne do klasy, wszystkie obowiązkowe w konstruktorze np ...
i potem zamiast

$zmienna = 'x';
$klasa = new Klasa();

dajesz

$klasa = new Klasa($zmienna);

note: zmienna może być tablicą asocjacyjną

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