Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

$GLOBALS funktioniert nicht richtig

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 08.10.2007, 07:27

Hallo,

es geht darum, dass ich ein Array von Varialennamen an eine Funktion übergebe, die mit diesen Variablen arbeitet. Am Ort der Übergabe ist nicht klar, ob diese Variablen existieren, daher werden nur die Namen der Variablen übergeben und nicht die Werte. Damit ich in der Funktion auf die Werte zugreifen kann, arbeite ich mit $GLOBALS. Leider haut dies nicht so hin, wie ich es gerne hätte.

Ich habe das Problem mal auf minimalen Code reduziert, dass es nachvollziehbar ist:

Code: Alles auswählen

<?
$art_id = 55;

show_value&#40;"art_id"&#41;;

function show_value&#40;$value&#41;
&#123;
   if &#40;isset&#40;$GLOBALS&#91;$value&#93;&#41;&#41;
   &#123;
      echo $value . "&#58; " . $GLOBALS&#91;$$value&#93;;
   &#125;
   else
   &#123;
      echo $value . " doesn't exist";
   &#125;
&#125;
?>
Wenn ich dies ausführe, erhalte ich diese Fehlermeldung:

Notice: Undefined variable: art_id in /Applications/MAMP/htdocs/xxx/test.php on line 8
art_id doesn't exist


Leider habe ich keinen Plan, wieso das nicht geht und vielleicht kannt mir da ja jemand helfen. Im Idealfall sollte er meiner Meinung nach den Wert anzeigen.

Mit global allein kann ich nicht arbeiten, da ich in meiner tatsächlichen Funktion nicht nur eine Variable, sondern mehrere nutze.

Phil
Zuletzt geändert von pvdb am 08.10.2007, 08:08, insgesamt 1-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Dante
PostRank 1
PostRank 1
Beiträge: 22
Registriert: 18.11.2005, 08:03

Beitrag von Dante » 08.10.2007, 07:44

Code: Alles auswählen

<? 
$art_id = 55; 

show_value&#40;"art_id"&#41;; 

function show_value&#40;$value&#41; 
&#123; 
   if &#40;isset&#40;$GLOBALS&#91;$value&#93;&#41;&#41; 
   &#123; 
      echo $value . "&#58; " . $GLOBALS&#91;$value&#93;; 
   &#125; 
   else 
   &#123; 
      echo $value . " doesn't exist"; 
   &#125; 
&#125; 
?> 
Sollte klappen, du brauchst bei sowas keine variablen Variablen.

Die Brauchst du nur in so einem Fall:

Code: Alles auswählen

<?php

$var1 = 'foobar';
$var2 = 'var1';

echo&#40;$$var2&#41;;
// gibt foobar aus

?>
bei-uns.de
Interessen verbinden Menschen

pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 08.10.2007, 07:47

hi,

dass es so geht ist mir klar, ich brauche es jedoch innerhalb meiner funktion, da gehts leider nicht so einfach

phil

whyte
PostRank 6
PostRank 6
Beiträge: 367
Registriert: 10.05.2004, 09:40

Beitrag von whyte » 08.10.2007, 07:50

Hallo,

hast du evtl. safe_mode=on ?

Gruß

pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 08.10.2007, 07:54

safe_mode ist off

Dante
PostRank 1
PostRank 1
Beiträge: 22
Registriert: 18.11.2005, 08:03

Beitrag von Dante » 08.10.2007, 08:08

pvdb hat geschrieben:dass es so geht ist mir klar, ich brauche es jedoch innerhalb meiner funktion, da gehts leider nicht so einfach
Also willst du mit deiner u.g. Funktion auf eine globale Variable $55 (die es nicht geben darf) zugreifen?

Dann wäre es folgendes:

Code: Alles auswählen

<? 
$art_id = 55; 

show_value&#40;"art_id"&#41;; 

function show_value&#40;$value&#41; 
&#123; 
   if &#40;isset&#40;$GLOBALS&#91;$GLOBALS&#91;$value&#93;&#93;&#41;&#41; 
   &#123; 
      echo $value . "&#58; " . $GLOBALS&#91;$GLOBALS&#91;$value&#93;&#93;&#41;&#41; ; 
   &#125; 
   else 
   &#123; 
      echo $value . " doesn't exist"; 
   &#125; 
&#125; 
?> 
Falls es das nicht ist, schreib doch, wo du welchen Wert erwartest, dann kann ich vielleicht besser helfen...
bei-uns.de
Interessen verbinden Menschen

pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 08.10.2007, 08:09

@dante

ich glaub ich hatte deinen beitrag eben nicht verstanden :) du wolltest mir doch sagen, dass ich gar nicht die $$ brauche, sondern ein $ ausreicht.

denn so haut es auch hin und wenn ich drüber nachdenke ist es auch logisch

Dante
PostRank 1
PostRank 1
Beiträge: 22
Registriert: 18.11.2005, 08:03

Beitrag von Dante » 08.10.2007, 08:14

pvdb hat geschrieben:ich glaub ich hatte deinen beitrag eben nicht verstanden :) du wolltest mir doch sagen, dass ich gar nicht die $$ brauche, sondern ein $ ausreicht.

denn so haut es auch hin und wenn ich drüber nachdenke ist es auch logisch
Genau das meinte ich mit "...du brauchst bei sowas keine variablen Variablen." ;-)
bei-uns.de
Interessen verbinden Menschen

e-fee
PostRank 10
PostRank 10
Beiträge: 3893
Registriert: 08.05.2007, 12:53

Beitrag von e-fee » 08.10.2007, 14:51

Ich bin zwar jetzt auch nicht die Mega-PHP-Heldin, und es kann durchaus sein, dass so manches an mir vorbei gegangen ist, was möglich ist.

Aber mal eine ganz banale Frage: warum übergibst Du der Funktion "art_id" statt $art_id oder meinezwegen auch $GLOBALS["art_id"] ??? Also einen String statt einer Variablen mit einem numerischen Wert?
Für meine Begriffe ist es da kein Wunder, dass der Server da meckert.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag