Bovendien is define niet bedoeld om een waarde toegewezen te krijgen at runtime (terwijl de applicatie draait). De bedoeling van define is meer iets zoals "search and replace" voordat de applicatie gestart wordt.
Je definieert enkel waardes met define die eigenlijk (bijna) nooit veranderen. Stel je wilt voor het gemak het aantal seconden per dag gemakkelijk kunnen raadplegen in je applicatie. Hiervoor zou je define kunnen gebruiken
<?php
define("SECS_PER_DAY", 86400); // 60s x 60m x 24u = 86400
?>
Nu kun je op verschillende andere plekken in je applicatie makkelijk rekenen met dagen
<?php
define("SECS_PER_DAY", 86400); // 60s x 60m x 24u = 86400
$tomorrow = time() + SECS_PER_DAY;
echo date('d-m-Y', $tomorrow);
?>
Bovenstaand voorbeeld is exact hetzelfde als onderstaand voorbeeld wanneer de applicatie gestart is:
<?php
$tomorrow = time() + 86400;
echo date('d-m-Y', $tomorrow);
?>
De tekst SECS_PER_DAY is namelijk vervangen voor 86400 voordat de applicatie gestart werd.
Bedankt voor de reacties. Ik begrijp de basis van CONSTANTEN wel en gebruik die al in verschillende scripts. Misschien is mijn benadering van mijn probleem niet goed en is er een betere werkwijze. Ik heb het nu als volgt ingericht;
Ik heb voor vier instanties een programma geschreven. Iedere instantie heeft een eigen database. In een tabel SETUP staan specifieke gegevens, adres telnummers, emails, en andere gegevens die specifiek voor die instantie van toepasing zijn.
De instanties hebben dus een eigen database maar gebruiken wel allemaal dezelfde scripts. Verder heb ik nog een ‘basis’ database.
De werking;
In het 1e startscript vult de gebruiker de naam van zijn instantie in.
In mijn ‘basis’ database staat een tabel met de DBF,USER,PW,HOST die bij de databases van de verschillende instanties horen.
Die gegevens worden opgehaald en die worden in aan CONSTANT toegewezen voor gebruikt in de de scripts.
In het 2e script wordt met die CONSTANTS verbinding met de de juist database gemaakt. Vanuit de SETUP tabel worden vervolgend de specifieke gegevens ook in CONSTANTEN gezet die in diverse scripts worden gebruikt.
Ik hoop dat het een beetje duidelijk is,
Groet,
Peter
Het zal waarschijnlijk een kwestie van smaak zijn maar persoonlijk ben ik er geen voorstander van om een waarde afkomstig van een database met een define tot een constante te defineren. Voor mij is het een gewone variabele.