PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Globale Variablen (http://www.selfphp.de/forum/showthread.php?t=4792)

OlliT 05.07.2003 13:21:31

Globale Variablen
 
Hallo,

ich habe ein Problem mit globalen variablen,

Beispiel:

PHP-Code:

function smiliesdb()
{
 global 
$trpc_parameters_smilies;
        
$trpc_name_s;
        
$trpc_value_s;
// Get smilies from db
if($trpc_result_smilies = @mysql_query("SELECT name, value FROM $TAB_parameters_smilies"))
{
 while (
$trpc_a_smilies mysql_fetch_array($trpc_result_smilies))
 {
  
$trpc_name_s $trpc_a_smilies["name"];
  
$trpc_value_s $trpc_a_smilies["value"];
  
$trpc_parameters_smilies[$trpc_name_s] = $trpc_value_s;
 }
}


funktioniert beim start ohne fehler, nur steht die Variable $trpc_parameters_smilies[$trpc_name_s] nicht zur verfühgung, schreibe ich das ganze anders...

Beispiel:

PHP-Code:

function smiliesdb()
{
 global 
$trpc_parameters_smilies[$trpc_name_s];
        
$trpc_name_s;
        
$trpc_value_s;
// Get smilies from db
if($trpc_result_smilies = @mysql_query("SELECT name, value FROM $TAB_parameters_smilies"))
{
 while (
$trpc_a_smilies mysql_fetch_array($trpc_result_smilies))
 {
  
$trpc_name_s $trpc_a_smilies["name"];
  
$trpc_value_s $trpc_a_smilies["value"];
  
$trpc_parameters_smilies[$trpc_name_s] = $trpc_value_s;
 }
}


gibt es eine fehlermeldung:

Parse error: parse error, expecting `','' or `';'' functions.inc.php on line xx und zwar in der zeile wo die variable $trpc_parameters_smilies[$trpc_name_s]; steht.

c4 05.07.2003 14:06:33

Warum schreibst Du nicht
global $trpc_name_s; ??
Reihenfolge musst Du auch noch ändern. Sonst kennt er die Variable trotzdem nicht.

In der Zeile darüber hast Du es doch auch....

OlliT 05.07.2003 14:17:26

Hi,

verstehe gerade nicht was du meinst. So vielleicht?

PHP-Code:

function smiliesdb()
{
 global 
$trpc_name_s;
           
$trpc_value_s
           
$trpc_parameters_smilies;

// Get smilies from db
if($trpc_result_smilies = @mysql_query("SELECT name, value FROM $TAB_parameters_smilies"))
{
 while (
$trpc_a_smilies mysql_fetch_array($trpc_result_smilies))
 {
  
$trpc_name_s $trpc_a_smilies["name"];
  
$trpc_value_s $trpc_a_smilies["value"];
  
$trpc_parameters_smilies[$trpc_name_s] = $trpc_value_s;
 }
}



Gweilo 05.07.2003 14:18:36

global $trpc_parameters_smilies[$trpc_name_s];
$trpc_name_s;
$trpc_value_s;

In der ersten Variable kommt die zweite vor, die gar noch nicht "verglobalisiert" wurde. VErsuch mal $trpc_name_s zuerst zu definieren. Und sowieso geht diese schreibweise (so viel ich weiss) gar nicht. Versuch die Variablen mit komma zu trennen, so zB:

global $trpc_name_s, $trpc_value_s, $trpc_parameters_smilies[$trpc_name_s];

c4 05.07.2003 14:20:34

Aus Deinem oberen Skriptschnipsel:
PHP-Code:

function smiliesdb() {
 global 
$trpc_name_s;
 global 
$trpc_value_s;
 global 
$trpc_parameters_smilies[$trpc_name_s]; 

Du machst eine Variable in einer Funktion doch global, da sie sonst nicht zur Verfügung stehen würde. Du sprichst aber eine Variable an, die erst eine Zeile später global gemacht wird. Da weiß der Interpreter das doch noch nicht. So wie es jetzt steht, könnte es klappen.

OlliT 05.07.2003 14:25:09

Hi,

habe das so geändert:

PHP-Code:

 global $trpc_name_s$trpc_value_s$trpc_parameters_smilies[$trpc_name_s]; 

dabei gibts aber immernoch die fehlermeldung

Parse error: parse error, expecting `','' or `';'' in functions.inc.php on line xx wo sich $trpc_parameters_smilies[$trpc_name_s]; befindet. wnen ich das so schreibe

global $trpc_name_s, $trpc_value_s, $trpc_parameters_smilies;[/PHP]

geht es, allerdings fehlt mir dann die variable ja die ich brauhce :-/

OlliT 05.07.2003 14:27:31

Es kommt immer diese Fehlermeldung wo die variable mit den eckigen klammer steht.

$trpc_parameters_smilies[$trpc_name_s];

c4 05.07.2003 14:27:38

Dann versuch es doch mal einzeln:
global $a;
global $b;
global $c;
...

OlliT 05.07.2003 14:32:09

Hab ich auch... für jede variable einzeln geht aber auch nicht

Also nochmal genau beschreiben was ich will.

Das ganze ist ein funktions script was im chatserver include wird.

Eingentlich steht das ganze so in dem funktionsscript

PHP-Code:

// Get smilies from db
if($trpc_result_smilies = @mysql_query("SELECT name, value FROM $TAB_parameters_smilies"))
{
 while (
$trpc_a_smilies mysql_fetch_array($trpc_result_smilies))
 {
  
$trpc_name_s $trpc_a_smilies["name"];
  
$trpc_value_s $trpc_a_smilies["value"];
  
$trpc_parameters_smilies[$trpc_name_s] = $trpc_value_s;
 }


das funktioniert auch bestens, allerdings möchte ich nicht immer den chatserver neustarten, wenn ich in die datenbank einen smilie hinzufüge, bzw wenn ich einen befehl dafür änder. Deswegen hab ich mir gedacht packst du das ganze in eine funktion, rufst die funktion da hinter einfach erstmal auf, damit das auch zur verfühgung steht und baust dann noch einen befehl ein der die funktion nochmal bei bedarf aufruft. Aber so einfach scheint es doch nicht zu sein.

c4 05.07.2003 14:51:01

Da ist übrigens noch mindestens eine Variable, die Du als global definieren musst: $TAB_parameters_smilies
Ich bin mir nicht sicher, ob Du den Datenbankhandle, auch global machen musst. Den DB-Handler hast Du (hoffentlich) an dieser Stelle erstellt: $db_handle=mysql_connect(...);


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:57:52 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.