Archief - PHP: Include -> functies en variabelen

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.

joyrider

Legacy Member
als je een file include waar een paar variabelen in gedefinieerd staan hoe kun je deze dan gebruiken in een functie in een andere file. moet je voor elke functie een require of include gebruiken eer je die variabelen kan gebruiken ?

bvb
file 1: Config.php
Code:
<?php
$test='testing';
?>

file 2: test.php
Code:
<?php
include('config.php');
echo $test  <-- zal werken

function printtest1() {
echo $test 
}

function printtest2() {
include('config.php');
echo $test
}

printtest1(); #print $test niet uit
printtest2(); #print $test wel uit
?>

is er dus een manier om niet telkens binne de functie een include te moeten aanroepen voor de variable $test laten aanwezig te zijn of gaat dit gewoon niet anders ?

ik dacht als je gewoon 1x de include bovenaan de file zette de variabelen binnen in de functies in die file ook wel zou bestaan, maar dit is blijkbaar niet zo.

Rvl

Legacy Member
wel als je de variabelen die buiten de functie zijn aangemaakt dan moet je het volgende doen. Je hebt bijvoorbeeld de var $test en je wil die gebruiken voor de functie parsefunc die je hebt gemaakt. nu doe je het volgende
Code:
$test= "foobar";

function parsefunc($parse) {
 hier u lines code die je wilt uitvoeren;
 return $parse;
}

$resultaat= parsefunc($test);
voila voor meer info www.php.net/function

taLa.

Legacy Member
In je eerste geval include je Config.php in de global scope. In diezelfde scope kan je $test dus blijven gebruiken. Dat komt overeen met:

PHP:
include('config.php');
echo $test  <-- zal werken

Als je echter diezelfde variabele wilt gebruiken in een functie, dus in een andere scope, moet je aanduide dat deze variabele komt uit de global scope. Dat doe je met het keyword 'global'. Dus om in de functie 'printtest1' $test te gebruiken, moet je het volgende doen:

PHP:
include('config.php');
echo $test; //  <-- zal werken

function printtest1() {
global $test;
echo $test;
}

Op die manier vertel je aan PHP dat hij de variabele $test uit de global scope moet gebruiken - anders denkt hij dat $test een variabele uit de function scope is.

Dat verklaart ook waarom de tweede functie wel werkt: je include Config.php, en dus de declaratie van $test in de functie scope. Daarom werkt de tweede functie wel, omdat PHP de variabele $test zoekt in de functie scope en hem daar ook vindt.

Om dus globale variabelen te gebruiken in een andere scope gebruik je 'global'.

Rvl

Legacy Member
joyrider lees wel eens site van php want ge moet globals niet gaan verwarren met gewone variabelen, want volgens mij heb je het niet echt door.

joyrider

Legacy Member
jawel snap het hoor en heb pagina op php.net bezien, wist ni achter wat ik moest zoeken vandaar dak ni op die page terecht gekomme ben. in een programmeertaal zoals delphi of zo zijn variabelen gedefineerd buiten uw functies zichtbaar in uw functies ook, in php niet tenzij ge expliciet zegt dat ze moeten kijken in de globale scope via global. da kon ik ni weten en dan wete ni zo direct waarachter te zoeken.
zat achter andere zaken te zoeken op php.net moest ik die site gekregen hebben had ik ook het ook wel geweten
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