[PHP] Variabele variabelen werken niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 18-09 17:00
Ik ben een winkelwagen aan het maken (voor school, maar doet verder niet ter zake, jullie hoeven verder niets voor me te maken ;)), maar nu stuit ik op een probleem. Ik heb deze functie geschreven:
PHP:
1
2
3
4
5
6
7
8
9
10
11
function check_var($what)
{
    echo "$$what = ${$what}<br>  \$what = $what<br><br>";
    if(isset($$what) && $$what != "")
    {
        include_once('mysql.php');
        addslashes($$what);
        do_query(create_query($what, $$what));
        exit;
    }
}

Het idee is dat ik ga zoeken op een bepaald iets (naam of adres of whatever..). Nu roep ik deze functie aan met check_var("klantnummer") bijvoorbeeld. Nu lever de eerste regel op:
$klantnummer =
$what = klantnummer
terwijl als ik echo $klantnummer doe ik wel netjes de ingevoerde waarde krijg. Deze variabelen worden dus via een zoek-form naar het script toegeparsed!
Waarom werkt dit niet?? Als ik op php.net gewoon overtype wat daar als voorbeeld staat werkt het wel, dus het zal ook wel niet aan de versie van php liggen (weet zo niet welke dat is eig)...
Iemand?

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Het is een functie je variabele ( bijvoorbeeld $klantnummer ) is NIET bekend binnen die functie, dus zal je een " Global $$what; " moeten doen of de variabele meegeven in de functie zelf ipv de naam van de variabele.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 18-09 17:00
Ach |:(
Tja, sorry :P

Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 22:04
Ik zou je zoiezo afraden gebruik van te maken van variabele variabelen, want het levert erg onlogische code op. :r

[ Voor 28% gewijzigd door pjonk op 02-12-2002 21:00 . Reden: extra info ]

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


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 18-09 17:00
JonkieXL schreef op 02 December 2002 @ 20:59:
Ik zou je zoiezo afraden gebruik van te maken van variabele variabelen, want het levert erg onlogische code op. :r
In dit geval niet echt ;) Het scheelt namelijk wel weer code. En wat je onlogisch vind ligt natuurlijk aan jezelf. Dit lijkt mij toch wel logisch??

Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 22:04
Persoonlijk vind ik dit leesbaarder hoor ;)
PHP:
1
2
3
4
5
6
7
8
9
function check_var($what) 
{ 
    if isset($_POST($what) && $_POST($what) != '') {
        $value = addslashes($_POST($what)); 
        include_once('mysql.php'); 
        do_query(create_query($what, $value)); 
        exit; 

    }


Nu weet ik niet of je die form values via POST of GET binnenkrijgt, maar anders moet je van $_POST uiteraard $_GET maken.

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


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
function check_var($varname) 
{ 
    if (!empty($_POST[$varname])) {
etc. etc. etc.

Vierkante haken na $_POST, want het is een array.

Leren ze je op school om variabelenamen als $what te gebruiken? Schaamtelijk.

Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 18-09 17:00
JonkieXL schreef op 02 december 2002 @ 21:38:
Persoonlijk vind ik dit leesbaarder hoor ;)
PHP:
1
2
3
4
5
6
7
8
9
function check_var($what) 
{ 
    if isset($_POST($what) && $_POST($what) != '') {
        $value = addslashes($_POST($what)); 
        include_once('mysql.php'); 
        do_query(create_query($what, $value)); 
        exit; 

    }


Nu weet ik niet of je die form values via POST of GET binnenkrijgt, maar anders moet je van $_POST uiteraard $_GET maken.
hmm, zo kan het ook wel eig :P Niet echt aan gedacht. Het is idd wel leesbaarder, maar goed het werkt nu. En wat niet stuk is ga ik ook niet repareren ;)

Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 22:04
Vierkante haken na $_POST, want het is een array.
Yep you're right, maar het gaat om het idee.
Snap uberhaupt niet waarom ze zoiets als variabele variabelen verzonnen hebben.

[ Voor 17% gewijzigd door pjonk op 02-12-2002 21:51 ]

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


Acties:
  • 0 Henk 'm!

Verwijderd

Stel (kan ff geen beter voorbeeld verzinnen):
Je hebt 50 variabelen die je moet vullen (bij zoiets als Delphi oid kunnen dat dus bijv invoervakjes kunnen zijn).

Dan is het natuurlijk veel makkelijker om met een for-loopje de zooi te vullen (met namen als invoer1, invoer2, enz)

Hmm, kheb wel eens betere voorbeelden gehad, maar ik hoop dat het een beetje duidelijk is.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 02 december 2002 @ 21:57:
Stel (kan ff geen beter voorbeeld verzinnen):
Je hebt 50 variabelen die je moet vullen (bij zoiets als Delphi oid kunnen dat dus bijv invoervakjes kunnen zijn).

Dan is het natuurlijk veel makkelijker om met een for-loopje de zooi te vullen (met namen als invoer1, invoer2, enz)

Hmm, kheb wel eens betere voorbeelden gehad, maar ik hoop dat het een beetje duidelijk is.


:X

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Ik geef daarom ook het voorbeeld met die objecten in Delphi (zelf laatst nog gehad met een printoverzicht).

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 02 December 2002 @ 21:57:
Stel (kan ff geen beter voorbeeld verzinnen):
Je hebt 50 variabelen die je moet vullen (bij zoiets als Delphi oid kunnen dat dus bijv invoervakjes kunnen zijn).

Dan is het natuurlijk veel makkelijker om met een for-loopje de zooi te vullen (met namen als invoer1, invoer2, enz)

Hmm, kheb wel eens betere voorbeelden gehad, maar ik hoop dat het een beetje duidelijk is.
zelf zou ik dan voor een array van inputboxjes gaan ;)
Pagina: 1