Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena

[es] :: PHP :: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena

[ Pregleda: 3358 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
*.jagodina.beotel.yu

Sajt: www.lun.co.yu


Profil

icon Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena30.09.2002. u 22:44 - pre 230 meseci
Evo prvo koda:

else {
$slog = readdir($dir);
while ($slog) {
if (substr($slog, -8) == ".inc.php") {
include("../etc/mod/registar/$slog");
echo "<p><b>$modinfo</b>:</p>";
}
$slog = readdir($dir);
}
closedir($dir);
}

Dakle, ovaj kod učitava sve fajlove iz direktorijuma /etc/mod/registar/ koji imaju ekstenziju .inc.php.

Promenljiva $modinfo koja se javlja se nalazi u SVAKOM od fajlova koji se include-uju. Za svaki fajl ona ima drugačiju vrednost. (Kao i sve ostale promenljive koje se javljaju - u principu, ovi fajlovi su identifikatori modula tj. sadrže informacije o modulu - ime, opis, lokacije itd. - uglavnom, sve promenljive istih imena ali za svaki fajl nova vrednost)

Problem koji se javlja je da ovakav kod samo prvi put odradi posao kako treba. Već kad treba da učita sledeći fajl on pukne:

Fatal error: Cannot redeclare...

Kako rešiti ovaj problem?
*************************************
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+4 Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena01.10.2002. u 04:29 - pre 230 meseci
nije problem uopste u $modinfo promenjivoj, niti u bilo kojoj drugoj promenjivoj.

u php-u promenjive mogu de se redeklarisu zilion puta, ako zelis.

medjutim, konstante i klase ne mogu da se redefinisu. za konstante pogledaj da li imash negde define() funkciju u datim modulima, a za klase, proveri da li imash dve klase koje se zovu isto...

(a sto se prethodna dva posta tice, ili sam ja glup pa ih ne razumem, ili su promasili temu...)
 
Odgovor na temu

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
195.252.118.*

Sajt: www.lun.co.yu


Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena01.10.2002. u 09:49 - pre 230 meseci
UH, posle dužeg smaranja sam uspeo ovo da rešim ali na nevidjeno komplikovan i prilično (u daljem razvoju) neupotrebljiv način tako da sam uzeo alternativno rešenje - MySql tabela samo za module.

U svakom slucaju, hvala!
*************************************
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+4 Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena02.10.2002. u 02:35 - pre 230 meseci
a u cemu je bio problem?


ps, veoma lepo sto moderatori rade svoj posao ;) ali onda moj prvi post, u kome pominjem prethodna dva? posta zvuci pomalo cudno ;)
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena02.10.2002. u 06:55 - pre 230 meseci
luner, ovo pitanje je trebalo da postavis tamo gde si postavio i prethodno :)

elem nema to nikakve veze sa ovim sto zombie prica... svi tvoji problemi nastaju zbog toga (ovo je pretpostavka) sto u php.ini fajlu nisi podesio da se varijable "prenose" iz modula u modul... Sad ja ne znam napamet koja tacno varijabla je za sta, ali imas odlicnu dokumentaciju u vezi toga u PHP Manual-u, citavo jedno poglavlje je posveceno upravo ovome, i svaka stavka u php.ini je posebno objasnjena!
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena02.10.2002. u 14:44 - pre 230 meseci
sigurno je, 100% da si u modulima imao neku funkciju ili klasu koje su imale ista imena. sigurno je opet, 100%, da varijabla nije problem! Problem je sto svaki include() stavlja taj fajl na to mesto, e sada onda se desi da dobijes nekoliko istih funkcija u fajlu. Kako mu to dodje preklapanje sa istim parametrima php krene da vristi.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.elfak.ni.ac.yu

Sajt: localhost


+4 Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena03.10.2002. u 01:26 - pre 230 meseci
Citat:
leka:
elem nema to nikakve veze sa ovim sto zombie prica... svi tvoji problemi nastaju zbog toga (ovo je pretpostavka) sto u php.ini fajlu nisi podesio da se varijable "prenose" iz modula u modul... Sad ja ne znam napamet koja tacno varijabla je za sta, ali imas odlicnu dokumentaciju u vezi toga u PHP Manual-u, citavo jedno poglavlje je posveceno upravo ovome, i svaka stavka u php.ini je posebno objasnjena!


svaka tebi cast leka (cim si supermoderator, mora da za to postoje razlozi) ali ne morash bash da se petljash sa necim u sta se ne razumesh...

gde bre to u php man-u (molim te pokazi mi) ima opisana opcija kojom se iz php-a iskljucuje prenos varijabli izmedju modula? pa cemu bi onda moduli mogli da sluze???

a i kako bi neprenosenje varijabli moglo da proizvede "redefine" gresku?

problem je (najverovatnije) bio ono sto sam ja naveo, mada sam zaboravio da pomenem i redeklaraciju funkcija...
 
Odgovor na temu

Guardian OfThe Blind
Beograd

Član broj: 1048
Poruke: 78
*.beograd-3.tehnicom.net



Profil

icon Re: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena03.10.2002. u 08:09 - pre 230 meseci
kada nisi siguran da je funkcija možda već definisana koristi:

bool function_exists ( string ime_funkcije)

a za konstante:

bool defined ( string ime_konstante)

ako ne reši skroz problem, možda će ga bar naći...
 
Odgovor na temu

[es] :: PHP :: Višestruki include() fajlova koji u sebi sadrže promenljivu istog imena

[ Pregleda: 3358 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.