phpbar.de logo

Mailinglisten-Archive

[php-gtk] Verstaendnisprobleme...

[php-gtk] Verstaendnisprobleme...

Frank Thomas frank at thomas-alfeld.de
Mon Jan 28 00:13:41 CET 2002


Hallo.

On Sunday 27 January 2002 17:13, you (Roland Spielhofer) wrote:
> Hallo!
> Erst mal danke für die vorangegange Hilfe, aber wo die einen Probleme
> verschwinden, tauchen neue auf :-(
>
> Ich öffne mit einer Funktion aus dem Hauptfenster heraus ein neues
> Fenster, in dem u.a. eine Combo-Box enthalten ist:
>
> function new_recipient() {
> 	neues fenster...
> 	neue combobox...
> 	neue items...
> 	neue textfelder
> 	neuer button "Speichern"
> }
> Dieser Button ruft beim Klick die Funktion
>
> function save_recipient(){
> 	global $combo_vorwahl, $nummer, $name;
> 	$auswahl=$combo_vorwahl->entry;
> 	$netz=$auswahl->get_text();
> 	[...]
> }
> auf.
> $combo_auswahl ist die combo, die in der oberen Funktion definiert
> wurden, $name und $nummer sind Textfelder.
> Sobald ich also auf Speichern klicke, gibt´s einen Fatal error in
> line [...], also der Zeile mit $auswahl=.....
> "Call to a member function on a non-object".
> Wie greife ich nun auf die ComboBox bzw auf die Textfelder zu (Inhalt
> soll in ein Array geschrieben werden, und das dann abgespeichert).
>
> Wie krieg ich die $combo_auswahl dazu, daß sie in der Funktion
> bekannt ist, oder woran liegt es, daß sie nicht greifbar ist?
>
> Ich durchschaue irgendwie die Struktur dahinter nicht....

Folgendes müsste äquivalent zu deinem code sein:

<?php

function foo(){
    global $a;
    print $a;
}

function bar(){
    $a = "yeha";
    foo();
}

bar();

?>

Hierbei wird $a nicht ausgegeben.

So geht's:
<?php

$a = "";

function foo(){
    global $a;
    print $a;
}


function bar(){
    global $a;
    $a = "yeha";
    foo();

}

bar();

?>

Oder so:

<?php

class test {
    
   var $a;

   function foo(){
     print $this->a;
   }


    function bar(){
      $this->a = "yeha";
      $this->foo();

    }

}

$t = new test;
$t->bar();

?>

Grüsse,
Frank


php::bar PHP Wiki   -   Listenarchive