Archief - PHP: locale variabele

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

/\quila

Legacy Member
Hoi,

Stel ik heb een URL waarin een groot aantal variabelen wordt meegegeven. Dit komt op verschillende pagina's terug, is het dan mogelijk om hiervoor dan een functie te schrijven om de variabelen te hernoemen.

functions.php
PHP:
//Split URL
function splitURL() {
	$page = $_GET['p'];
}
index.php?p=test
PHP:
splitURL();
echo $page;
Geeft niets terug.

Ik veronderstel dat dit niet werkt omwille van het feit dat functions geïnclude wordt, en dat de functie splitURL $_GET binnen functions.php werkt? Hoe kan ik er dan wel voor zorgen dat ik deze code niet moet herhalen in de code binnen elke pagina?

Mvg,
Aquila

Tyfius

Legacy Member
Dit werkt niet omwille van het feit da de variabele $page alleen gekend is binnen de functie splitUrl();

Je kan alles in een array gaan zetten, bvb
PHP:
<?php


function splitUrl() {
    $url['page'] = $_GET['p'];
    $url['lang'] = $_GET['l'];
    
    return $url;
}

$url = splitUrl();

?>

dJeez

Legacy Member
Als ik u was zou ik eens de PHP docs lezen, en meerbepaald het hoofdstuk over de scope (werkingsgebied) van variabelen. Dan weet je direct waarom het niet werkte (hint : functievariabelen hebben geen globale scope).

/\quila

Legacy Member
Inderdaad, het was ofwel een fout omwille van die include, ofwel een fout omwille van de scope.

We hebben onlangs in java even vluchtig de scope van variabelen gezien, maar zal zeker ook in de documentatie van php gaan kijken.

killgore

Legacy Member
slechte manier:
PHP:
function splitURL() {
    global $page = $_GET['p'];
}
goede manier -> zie tyfius ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan