Probleem met global $var in functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcel Santing

Marcel Santing

13/04/2015 10:00:11
Quote Anchor link
Okee ik heb een functie....

namelijk de volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
        function display_correct_content()
        {
            global $content;

            if (isset($_GET['page'])){ // grab value
                $content = load_page($_GET['page']); // if this has a set create the variable
            }

        }

deze wordt aangeroepen in mijn online.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
            display_correct_content();
            if(!empty($content)) {
                if ($content['function'] == "") {
                    echo $content['content'];
                }
else {
                    include('function/' . $content['function']);
                }
            }
?>


nu lijkt het erop dat de $content leeg blijft. Eerst dacht ik dat mijn load_page functie fout was. Nu zag ik ergens voorbij schieten dat de wijze waarop ik mijn var in een global zet niet meer werkt vanaf php 5.5.

klopt dit? Of ben ik nu echt zo een NooB dat ik een mega fout gewoon niet zie.
Gewijzigd op 13/04/2015 10:17:00 door Marcel Santing
 
PHP hulp

PHP hulp

20/04/2024 12:33:56
 
- Ariën  -
Beheerder

- Ariën -

13/04/2015 10:06:18
Quote Anchor link
Zou je even je topictitel willen verduidelijken met je vraag/probleemstelling? Dat kan door je bericht aan te passen. Zo blijft het forum overzichtelijk voor iedereen.
Gewijzigd op 13/04/2015 10:06:28 door - Ariën -
 
Marcel Santing

Marcel Santing

13/04/2015 10:23:39
Quote Anchor link
ow en deze melding wordt weergegeven als ik de if !empty eruit haal....

Notice: Undefined variable: content
 
Jeffrey van Rossum

Jeffrey van Rossum

13/04/2015 11:32:06
Quote Anchor link
Probeer je global is zo te definiëren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$GLOBALS
['content'] = $content;
?>


Vervolgens, unidentified index kun je oplossen door aan het begin van je functie $content als leeg te definiëren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$content
= '';
?>
Gewijzigd op 13/04/2015 11:33:16 door Jeffrey van Rossum
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/04/2015 13:52:08
Quote Anchor link
Jeffrey van Rossum op 13/04/2015 11:32:06:
Probeer je global is zo te definiëren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$GLOBALS
['content'] = $content;
?>

Vervolgens, unidentified index kun je oplossen door aan het begin van je functie $content als leeg te definiëren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$content
= '';
?>


Dat laatste is helaas ook niet helemaal correct. Je zult $content['function'] moeten definiëren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$content
['function'] ='';
?>
Gewijzigd op 13/04/2015 13:54:31 door Frank Nietbelangrijk
 
Jacco Engel

Jacco Engel

13/04/2015 14:06:46
Quote Anchor link
Als dit de volledig scope van $content is waarom gebruik je dan uberhaupt een global.

Gewoon $content returnen in display_correct_content en $content = display_correct_content();. Dan heb je het hele probleem niet meer, en komt (op de lange termijn zeker) de leesbaarheid van je code ten goede
 
Marcel Santing

Marcel Santing

13/04/2015 14:13:42
Quote Anchor link
Jacco Engel op 13/04/2015 14:06:46:
Als dit de volledig scope van $content is waarom gebruik je dan uberhaupt een global.

Gewoon $content returnen in display_correct_content en $content = display_correct_content();. Dan heb je het hele probleem niet meer, en komt (op de lange termijn zeker) de leesbaarheid van je code ten goede


Jacco,

ik heb op jouw manier dit nu toegepast, de reden waarom ik deze fout kreeg was dat de header niet goed werdt geladen in mijn online.php <de verwijzing stond in de index.php> hoewel hij geen fout gaf op de functies bleken variabelen toch problemen te geven.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.