Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znikająca zmienna w includowanym pliku
MMySlime
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 22.08.2012

Ostrzeżenie: (0%)
-----


Witam,
otóż mam pewien problem. W pliku przyłóżmy 2 mam sobię zmienną. Plik 2 został zaincludowany poprzez plik 1. Lecz z kolei plik 1 został zaincludowany przez plik 0. Gdy próbuję odczytać zmienną x w pliku 1 lub 0 nie da się, co może być przyczyną? Jeszcze dołączę pliki dla rozjaśnienia.
0.
  1. <?php
  2.  
  3. /**
  4.  * PHP Version Check
  5.  */
  6.  
  7. if(phpversion() < 5.3) die('Your version of php is too small, please repeair this.<br />Your version: '.phpversion().'<br />Remaing version: 5.3');
  8.  
  9. /**
  10.  * Starters
  11.  */
  12.  
  13.  
  14. /**
  15.  * Include all helpers
  16.  */
  17.  
  18. foreach (glob('stc_helpers/First/*.php') as $file)
  19. require $file;
  20.  
  21. foreach (glob('stc_helpers/Last/*.php') as $file)
  22. require $file;
  23.  
  24. /**
  25.  * Core implode
  26.  */
  27.  
  28. push('init.php','stc_core/');
  29.  
  30. ?>


Funkcja push(); dołącza plik z tym że najpierw sprawdza czy jest w folderze i zamiast wywalać nieprzyjemnego Notica czy Fatal Errora zwraca wiadomość do wykorzystania w zmiennej.

1. Czyli init.php
  1. <?php
  2.  
  3. /**
  4.  * First: DataBase informations
  5.  */
  6.  
  7. push('db.php','stc_core/');
  8.  
  9. /**
  10.  * Second: Downloading data from DB and importing it to array
  11.  */
  12.  
  13. push('config.php','stc_core/');
  14.  
  15. /**
  16.  * Third: Define important vars
  17.  */
  18.  
  19. push('define.php','stc_core/');
  20.  
  21. ?>

Czyli po kolei dodaję pliki do systemu
2. Czyli inaczej db.php
  1. <?php
  2.  
  3. /**
  4.  * Making prefix
  5.  */
  6.  
  7. define('PREFIX','cms_');
  8.  
  9. /**
  10.  * Setting var
  11.  */
  12.  
  13. $mysql = new CMS_DBH();
  14.  
  15. /** You can edit **/
  16.  
  17. $mysql->host = '...';
  18. $mysql->user = '...';
  19. $mysql->pass = '...';
  20. $mysql->base = '...';
  21.  
  22. ?>

Jeszcze raz powtórzę że właśnie chcę odzdziałowywać na zmiennej $mysql. Dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Includując plik wewnątrz funkcji jego zmienne są dostępne lokalnie (tylko w ciele funkcji)
Go to the top of the page
+Quote Post
MMySlime
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 22.08.2012

Ostrzeżenie: (0%)
-----


Czyli muszę zastosować returna? Czy jednak muszę korzystać ze standardowego require?
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Return to kiepski pomysł, pamiętaj, że czasami w includowanym pliku mogą pojawić się dwie lub więcej zmiennych

Najprostsze rozwiązanie aby nie zaśmiecać indexu
require.php
  1. require 'xx.php';
  2. require 'yy.php';
  3. //itd..


index.php
  1. require 'require.php';


Ten post edytował CuteOne 16.12.2012, 02:24:22
Go to the top of the page
+Quote Post
MMySlime
post
Post #5





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 22.08.2012

Ostrzeżenie: (0%)
-----


Właśnie tak robię ^^, dzięki za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 12:55