login  Naam:   Wachtwoord: 
Registreer je!
 Forum

define() en is_defined()

Offline StealthDev - 02/05/2005 21:41
Avatar van StealthDevOnbekend zou iemand me kunnen uitleggen waarvoor en define() dient??
En wat je eraan hebt.
Kom het namelijk vaak tegen in scripts.
Maar snap het niet helemaal

4 antwoorden

Gesponsorde links
Offline Scott - 02/05/2005 21:53
Avatar van Scott Gouden medaille

PHP ver gevorderde
Dit maakt een constante aan. Constanten zijn zoals de naam al zegt constant en eenmaal gedefineërd kunnen ze in dat bestand niet meer veranderd worden. Het is dus een soort variabele met een vaste waarde 
Offline Thomas - 03/05/2005 00:00 (laatste wijziging 03/05/2005 16:22)
Avatar van Thomas Moderator Het kan handig zijn bij bijvoorbeeld includes:

Stel je hebt een index-file, index.php, waarin je een aantal bestanden kan includen, bijvoorbeeld a.php, b.php en c.php.

Maar je wilt niet dat mensen rechtstreeks a.php. b.php of c.php kunnen aanspreken (zodat alleen maar het nieuws-deel van een webpagina laadt ofzo).

Je kan dit oplossen door die PHP-bestanden in een geheime / beveiligde map te zetten, maar je kan het ook met constanten oplossen.

In index.php declareer je de constante, en in de include controleer je op het bestaan van deze constante:

index.php:
  1. <?php
  2. define("INCLUDED_IN_INDEX", true);
  3.  
  4. // rest van index.php
  5. ...
  6. ?>


En in elke include zet je:
  1. <?php
  2. // was de include ook echt geinclude ?
  3. if(defined("INCLUDED_IN_INDEX")) {
  4. // alles in orde - rest van include
  5. ...
  6. } else {
  7. // include wordt apart aangeroepen ! Straf deze poging af
  8. header("Location: http://www.disneylandparis.com");
  9. }
  10. ?>
Offline StealthDev - 03/05/2005 08:35
Avatar van StealthDev Onbekend Dus is declare() hetzelfde als define()?
Offline Thomas - 03/05/2005 16:19
Avatar van Thomas Moderator Woops!

Dat moet natuurlijk define() zijn .
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s