variabele > functie > echo = lukt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Douwe

Douwe

15/11/2007 17:23:00
Quote Anchor link
Hey allemaal,
Ik heb nu een script dat in de verste verte lijkt op het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$aaa
="beeeeeeeeeeeeeeeeh";

function
a(){
  echo $aaa;
}


a();
?>

Het komt er dus neer dat ik een variable aanmaak, die wil ik laten echoën in een functie, en dan roep ik die functie aan. Het verwachte resultaat is dus dat de waarde van de variable wordt geëchod.
Maar wat er gebeurd is: niks.
Als ik kijk of de variable isset() geeft hij false terug.
Het lijkt er dus op dat de variable niet in de functie bruikbaar is... Mijn probleem is dat ik dat dus wel wil.
Hoe krijg ik de variable zover te werken buiten functies, en binnen functies?
Gewijzigd op 01/01/1970 01:00:00 door Douwe
 
PHP hulp

PHP hulp

22/11/2024 06:56:36
 
Joren de Wit

Joren de Wit

15/11/2007 17:27:00
Quote Anchor link
Globals:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$foo
= 'bar';

function
foobar()
{

    global $foo;
    echo $foo;
}


foobar(); // Output: 'bar'
?>
 
Douwe

Douwe

15/11/2007 17:28:00
Quote Anchor link
yeah :) dank je
kan ik ook in een keer alle vars global maken?
Gewijzigd op 01/01/1970 01:00:00 door Douwe
 
GaMer B

GaMer B

15/11/2007 17:29:00
Quote Anchor link
Of de variabel doorgeven aan de functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function a($input){
  echo $input;
}


$aaa="beeeeeeeeeeeeeeeeh";

a($aaa);
?>
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
Frank -

Frank -

15/11/2007 17:31:00
Quote Anchor link
Vraag: Hoeveel bugs wil je hebben?

In jouw code is niet/nauwelijks terug te vinden waar je $foo allemaal voor gaat gebruiken. Jij verandert de waarde ergens en vervolgens valt er vanallesennogwat om. Waarom? Omdat er blijkbaar her en der in functies deze variabele als global wordt aangeroepen.

Wil je de kans verkleinen dat je hiermee de mist in gaat, zorg dan voor hele goeie documentatie! Helaas is documenteren een zwak punt van de beste programmeurs...
 
Joren de Wit

Joren de Wit

15/11/2007 17:32:00
Quote Anchor link
@Frank: bedankt voor de nuancering. Hoef ik die niet meer te geven :)
 
Douwe

Douwe

15/11/2007 17:33:00
Quote Anchor link
@GaMer;
Okay, dat had ik ook al bedacht, maar dat heeft geen zin waar ik het ga gebruiken.
@pgFrank;
Dat maakt niet uit, het gaat over een var die ik niet vanplan ben aan te passen, en dus eigenlijk dienst doet als defined-var, maar beter staat als gewone var.
Gewijzigd op 01/01/1970 01:00:00 door Douwe
 
Joren de Wit

Joren de Wit

15/11/2007 20:59:00
Quote Anchor link
Quote:
Dat maakt niet uit, het gaat over een var die ik niet vanplan ben aan te passen, en dus eigenlijk dienst doet als defined-var, maar beter staat als gewone var.
Definieer hem dan gewoon als constante!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
define('CONSTANTE', 'waarde');
echo CONSTANTE; // Voorbeeldje
?>
 
Douwe

Douwe

17/11/2007 06:53:00
Quote Anchor link
@Blanche;
Ja, dat begrijp ik, maar om mijn redenen wil en doe ik dat niet.
 
Joren de Wit

Joren de Wit

17/11/2007 09:30:00
Quote Anchor link
Ok, je zult er je redenen voor hebben. Maar dit is wel de netste manier om dit op te lossen. Aan het global maken van variabelen kleven namelijk ook een groot aantal nadelen als je niet heel erg netjes script, om het maar niet te hebben over het globaliseren van alle variabelen.
 
Frank -

Frank -

17/11/2007 15:38:00
Quote Anchor link
Douwe Ikkuh schreef op 17.11.2007 06:53:
@Blanche;
Ja, dat begrijp ik, maar om mijn redenen wil en doe ik dat niet.
Maak dan maar vast wat uurtjes vrij voor het debuggen van je systemen, variabelen hebben de eigenschap om nog wel eens van waarde te veranderen. En wanneer je dan op de meest onverwachte plaatsen van deze variabele gebruik gaat maken, dan kom je nog wel eens voor een verrassing te staan.

Veel succes!
 



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.