[PHP5] global variabelen

Pagina: 1
Acties:
  • 1.934 views sinds 30-01-2008
  • Reageer

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik heb een toepassing gekregen van een extern bedrijf. In de specs staat dat het op Linux met Apache en PHP (en MySQL) moet draaien.
Het een vrij recente server installatie (Linux) met daarop dus Apache 2 en PHP5 en Mysql versie 5...

Nu heb ik grote problemen om het op die server draaiende te krijgen.

Wat mij in de code opvalt is het volgende:

vaak dingen als:

PHP:
1
global $var;

Dit vaak buiten functies etc, als ik het goed heb is dit toch een reden waarom tegenwoordig global vars in de php.ini uit staan?
En is het niet beter om $GLOBALS['$var'] te gebruiken?

Overigens zitten er veel inconsistente dingen in als:
PHP:
1
2
3
$_SESSION[$var]
$_SESSION['$var']
$_SESSION["$var"]


en er wordt bv
PHP:
1
2
3
ISSET 
//geschreven ipv 
isset


Hoe zit dit nu precies en hoe goed is dit geschreven? Ik krijg ernstige twijfels als ik dit allemaal zie...
Het lijkt of het echt specifiek voor PHP4 is geschreven.

[ Voor 9% gewijzigd door ViNyL op 16-08-2006 09:46 ]


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
ViNyL schreef op woensdag 16 augustus 2006 @ 09:42:
Ik heb een toepassing gekregen van een extern bedrijf. In de specs staat dat het op PHP4 moet draaien, maar ik dacht, tja dat moet niet zo'n groot punt zijn toch?
Tevens is het een vrij recente server installatie (Linux) met daarop dus Apache 2 en PHP5 en Mysql versie 5...

Nu heb ik grote problemen om het op die server draaiende te krijgen.

Wat mij in de code opvalt is het volgende:

vaak dingen als:

PHP:
1
global $var;

Dit vaak buiten functies etc, als ik het goed heb is dit toch een reden waarom tegenwoordig global vars in de php.ini uit staan?
global wil niet zeggen dat ze direct in de php.ini staan.
En is het niet beter om $GLOBALS['$var'] te gebruiken?
zou ik in ieder geval niet zo doen.. tussen single quotes worden php dingen niet geparsed, dus '$var' gaat daaderkelijk '$var' zijn en niet 'pietjep' ofzo
Overigens zitten er veel inconsistente dingen in als:
PHP:
1
2
3
$_SESSION[$var]
$_SESSION['$var']
$_SESSION["$var"]
ik zou voor de eerste gaan, dwz:
$_SESSION[$var]
of
$_SESSION["hoi"]
eventueel kan ipv die hierboven ook deze:
$_SESSION['hoi']
maar NIET:
$_SESSION['$var']
en er wordt bv
PHP:
1
2
3
ISSET 
//geschreven ipv 
isset
dus? php is niet case sensitive.. verder kan je dat met een simple replace in je code goedzetten als je dat graag wilt
Hoe zit dit nu precies en hoe goed is dit geschreven? Ik krijg ernstige twijfels als ik dit allemaal zie...
lijkt me dat meerdere programmeurs aan die code gewerkt hebben of iemand die niet zo consequent was.
anyway, ik zou er niet direct van flippen. wat je hierboven post is geen ramp ofzo

This message was sent on 100% recyclable electrons.


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 14-02 20:26
Mooi spul dat PHP, of niet soms?
Kan is groot dat alles ook nog precies werkt zoals bedoelt is, komt omdat PHP bijna alles slikt. Ja het werkt. Nee het is niet netjes. Maar aan 2 variabele declaraties kun je niet echt goed zien hoe goed is het is, maar de indruk die de code nu al achterlaat is niet bijster groot.

Maar wat is je probleem nou eigenlijk?

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Hmm okay, maar hoe zit het met die globals dan? Want die staan standaard uit in mijn php.ini dus dat gaat problemen geven...

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
ViNyL schreef op woensdag 16 augustus 2006 @ 09:42:
PHP:
1
global $var;

Dit vaak buiten functies etc, als ik het goed heb is dit toch een reden waarom tegenwoordig global vars in de php.ini uit staan?
En is het niet beter om $GLOBALS['$var'] te gebruiken?
Ik neem aan dat je op de register global instelling doelt? Register globals en het keyword global zijn toch echt twee verschillende dingen. ;)

{signature}


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
nou het probleem is dat het volgens de specs hoort te draaien, maar op php5 gaat het geen kant op, zodra ik het (test het nu net) op php4 draait gaat het een stuk beter.

Om nou register_globals aan te zitten in mijn php.ini, liever niet, dat wordt afgeraden in de php.ini zelf...
Ik neem aan dat je op de register global instelling doelt? Register globals en het keyword global zijn toch echt twee verschillende dingen. ;)
Ah ok, weet niet precies hoe het zit..Als ik hem aan zet in mijn php.ini doet de code namelijk iets meer, dacht dat het daar mee te maken had.

Wil alleen even zeker weten dat de code niet de oorzaak van de ellende is. Ik heb nog nooit probs gehad met de installaties van Linux/Apache/PHP etc die hier draaien.. tot nu.
lijkt me dat meerdere programmeurs aan die code gewerkt hebben of iemand die niet zo consequent was.
Er is maar door 1 iemand aan gewerkt.

* ViNyL vindt het een beetje raar in elkaar zitten met al die verschillende gebruiken van $_SESSION etc en ik heb weleens gehoord dat als je veel 'global $var' gebruikt dat deze allemaal blijven bestaan.. ze worden toch nooit 'opgeruimd'?

[ Voor 67% gewijzigd door ViNyL op 16-08-2006 10:06 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Zoek dan uit hoe het wel zit. :) Hoewel het als bad practice gezien wordt om alles via globale variabelen te doen, is het zeker wel handig om te weten wat de term 'scope van een variabele' (een term die je zeker tegen gaat komen bij de uitleg van global) in houdt.

Als je vervolgens zeker weet dat je niet zelf simpel het probleem kan achteralen en een fix kan maken, kan je natuurlijk ook gewoon dat externe bedrijf vragen of de code bijvoorbeeld PHP5 complaint is.
ViNyL schreef op woensdag 16 augustus 2006 @ 09:54:Wil alleen even zeker weten dat de code niet de oorzaak van de ellende is. Ik heb nog nooit probs gehad met de installaties van Linux/Apache/PHP etc die hier draaien.. tot nu.
Een inconsistente coding style zuigt, maar meer dan dat valt er over je voorbeelden niet te zeggen. Je geeft niet aan wat er eigenlijk niet werkt. Je zal toch echt zelf ook wat uitgebreider moeten debuggen.
* ViNyL vindt het een beetje raar in elkaar zitten met al die verschillende gebruiken van $_SESSION etc en ik heb weleens gehoord dat als je veel 'global $var' gebruikt dat deze allemaal blijven bestaan.. ze worden toch nooit 'opgeruimd'?
Lees dus eens over scope van een variabele, want voor wat je nu zegt is er een spreekwoord (iets met klok en klepel :> )

[ Voor 15% gewijzigd door Voutloos op 16-08-2006 10:08 ]

{signature}


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Tjah 'wat' er niet werkt is nou het probleem, ik zag in een eerste oog opslag zoveel dingen waarvan ik dacht "huh?", dat ik dat niet heb kunnen achterhalen.

Het is me iig duidelijk dat het op php4 wel en op php5 niet werkt. Het is niet mijn taak om het te debuggen etc.. het gaat gewoon retour met de opmerking dat het op php5 niet werkt...
quote:
* ViNyL vindt het een beetje raar in elkaar zitten met al die verschillende gebruiken van $_SESSION etc en ik heb weleens gehoord dat als je veel 'global $var' gebruikt dat deze allemaal blijven bestaan.. ze worden toch nooit 'opgeruimd'?

Lees dus eens over scope van een variabele, want voor wat je nu zegt is er een spreekwoord (iets met klok en klepel :> )
Daar heb je inderdaad gelijk in :)

[ Voor 38% gewijzigd door ViNyL op 16-08-2006 10:09 ]

Pagina: 1