[PHP] variabelen van buiten in een functie gebruiken

Pagina: 1
Acties:

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 12-02 12:36
Ik ben een pagina aan het maken met een heleboel functies erop, binnen elke functie wil ik een bepaalde variabele gebruiken, ik wil bovenaan de pagina (dus niet in een functie) de variabele declareren

dus bovenaan de pagina: $var = "hoi";

maar als ik $var binnen een van de functies gebruik is ie leeg, hoe kan ik $var zo declareren dat hij ook binnen functies (op dezelfde pagina) gebruikt kan worden?
ik heb al geprobeerd met global $var maar dat werkt niet

Verwijderd

$GLOBALS["var"] gebruiken

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 12-02 12:36
volgens mij werkt dat niet, als ik de var binnen een functie echo dan is ie nog steeds leeg, of doe ik nou iets fout?

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 12-02 12:36
http://www.php.net/manual/en/language.variables.scope.php
toch nog een goeie link gevonden, denk dat het hiermee wel moet lukken

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
$var = "hoi!";

function foo() {
     echo $var;
}

function bar() {
     global $var;
     echo $var;
}


foo() laat geen output zien, bar() wel :)

Verwijderd

PHP:
1
$_GLOBALS["var"]
moet t zijn ;)

Verwijderd

PHP:
1
$GLOBALS["var"];


werkt hier anders wel, en:

PHP:
1
$_GLOBALS["var"];


niet. Zou aan de versie van php kunnen liggen natuurlijk...
Server die gebruik draait php v4.1.2

Verwijderd

Waarom zou je globals willen gebruiken?

als je in een clas werkt kun je wel variabelen declareren en dan $this->varname gebruiken bijvoorbeeld, globals zijn over het algemeen niet nodig en vrij lelijk...

Verwijderd

Verwijderd schreef op 21 september 2002 @ 00:03:
[...]

PHP:
1
$_GLOBALS["var"]
moet t zijn ;)
You should always have used $GLOBALS, with newer versions of PHP 4 you are forced to do so in most cases.
zie php.net - migration

beetje verwarrend is t wel, omdat t wel $_FILES, $_COOKIE, $_POST etc is :Y)
Verwijderd schreef op 21 september 2002 @ 07:57:
globals zijn over het algemeen niet nodig en vrij lelijk...
vroeger toen je nog global $var moest gebruiken, was t flink ranzig ja, maar tegenwoordig met $GLOBALS["var"], wat je dus net zo kunt gebruiken als de andere superglobals, vind ik het vrij net. t Ligt er natuurlijk ook wel een beetje aan waar je t voor gebruikt natuurlijk.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Het best is om globals te mijden en de variabele mee te geven aan je functie...

Verwijderd

Verwijderd schreef op 21 september 2002 @ 12:11:
[...]


[...]


zie php.net - migration

beetje verwarrend is t wel, omdat t wel $_FILES, $_COOKIE, $_POST etc is :Y)


[...]


vroeger toen je nog global $var moest gebruiken, was t flink ranzig ja, maar tegenwoordig met $GLOBALS["var"], wat je dus net zo kunt gebruiken als de andere superglobals, vind ik het vrij net. t Ligt er natuurlijk ook wel een beetje aan waar je t voor gebruikt natuurlijk.
Hmm, daar ben ik dus mee in de war :)

Verwijderd

PHP:
1
2
3
4
function Slet ($var)
{
    echo $var." is een slet.";
}


Zie ACM's mededeling. ACM is always right.

  • CTVirus
  • Registratie: Januari 2000
  • Laatst online: 26-08 14:37

CTVirus

Dexterslab FAN

Ik heb dus ook een probleem hiermee:

PHP:
1
2
3
4
5
6
7
8
9
10
$content_type = array("html","pdf","foto (jpg)","php");


function new_content($content_parent){
  global $content_type;
  $ii=count($content_type); 
  for($i=0;$i<$ii;$i++){ 
    $body .= "<option value='$i'>{$content_type[$i]}</option>";
  }
}


Dit werkt niet ook al meen ik dit vaker te hebben gedaan? Waarom werkt dit niet? Heeft de aanroep global uberhaupt nog zin???

(Ik weet dat het ook met $GLOBALS kan maar ik vind dit handiger)

[ Voor 12% gewijzigd door CTVirus op 26-11-2002 06:45 ]


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Werkt bij mij prima hoor, maar globals zijn inderdaad erg dirty.

It’s nice to be important but it’s more important to be nice


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

je moet de functie natuurlijk wel eerst aanroepen, maar beter is om zonder globals te werken:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$content_type = array("html","pdf","foto (jpg)","php"); 


function new_content($content_parent, $theTypes){ 
  $body = "";
  $ii=count($theTypes);  

  for($i=0;$i<$ii;$i++){  
    $body .= "<option value='$i'>{$theTypes[$i]}</option>"; 
  } 

  return $body
}

echo new_content('parent', $content_type);

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • CTVirus
  • Registratie: Januari 2000
  • Laatst online: 26-08 14:37

CTVirus

Dexterslab FAN

Tja, het probleem is een beetje mijn gehele code bestaat uit functies (exclusief +/- 5 requires en functieaanroepen). Hierdoor is het erg lastig om zulke standaard variable elke keer wee mee te geven. Heeft iemand een nog handigere manier om dit te doen.

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

CTVirus, zo moeilijk is dat niet hoor, gewoon even wat redesign! Maar, in principe hoeft het niet als jij het niet wil. Wat wij doen is jou vertellen hoe je het het beste kan doen. Overigens kan je ook eens kijken naar de link in de sig van drm.
Pagina: 1