[PHP] Variable scope

Pagina: 1
Acties:

Onderwerpen


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
Ik heb nu een project die via een index.php?action=actie navigeert.

Als volgt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

//Index Page: Loading configuration & Redirection

include("includes/classes.inc.php");

$timer = new Timer; 
$timer->startTimer(); 

include("includes/config.inc.php");
include("includes/functions.inc.php");

if(isset($_POST['action'])) {
    switch ($_POST['action']) {
        case "scan_structure_submit":
            include("includes/top.inc.php");
            include("includes/scan_structure_submit.inc.php");
            include("includes/footer.inc.php");
            break;
        case "fill_tables":
            include("includes/top.inc.php");
            include("includes/fill_tables.inc.php");
            include("includes/footer.inc.php");
            break;
    }
}

if(isset($_GET['action'])) {

    include("includes/top.inc.php");

    switch ($_GET['action']) {
        case "main":
            include("includes/main_menu.inc.php");
            break;
        case "scan_structure":
            include("includes/scan_structure.inc.php");
            break;
        default:
            include("includes/main_menu.inc.php");
            break;
    }

    include("includes/footer.inc.php");
} else {
    header("Location: {$PHP_SELF}?action=main");
}

?>


Als ik vervolgens binnen scan_structure.inc.php een functie aanroep (gedefineerd in functions.inc.php) dan zijn de variables die ik binnen config.inc.php gedefineerd heb niet meer bekend.

Ik heb geprobeerd om in de config.inc.php de gezette variables global te maken, maar dat had geen effect.

Vraag: Is er een manier om variables in een include bekend te maken aan later geinclude functies zonder ze door te hoeven geven?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Kun je een minimaal voorbeeld gegeven van hoe het niet werkt? (Bijvoorbeeld drie bestanden van elk drie regels: config.inc.php, index.php en page.php ofzo). In PHP introduceren alle modules hun globale variabelen in dezelfde scope (er bestaat maar één globale scope) dus als je de gewenste variabelen als global declareert in je functie, zouden ze beschikbaar moeten zijn, of ze nu in hetzelfde bestand gedefinieerd zijn of ergens anders.

Verwijderd

als je met globals wilt werken moet je ze binnen de functie als global zetten.

Maar beter zou zijn om gewoon de benodigde vars mee te geven aan de functie als parameters

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
Verwijderd schreef op 13 February 2003 @ 15:17:
als je met globals wilt werken moet je ze binnen de functie als global zetten.

Maar beter zou zijn om gewoon de benodigde vars mee te geven aan de functie als parameters
ok dan hou ik het daar maar bij.

Dat is opzich niet echt netjes, omdat vaak die 'globale variables' verder niets specifieks met de functie van doen hebben.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen