Eigene Funktion in Modul

Gesperrt
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Eigene Funktion in Modul

Beitrag von phpchris »

Hallo nochmal,

ich bin mit meinem Modul schon viel weiter.
Nun brauche ich eine Funktion, die sich rekursiv aufruft, um einen Kategoriebaum zu erzeugen.

Irgendwie kann ich aber nicht auf die Funktion zugreifen.

So in etwa versuche ich es bisher:

Code: Alles auswählen

function test($id){
}

[...]

$myvar = test($id);
Was stimmt daran nicht
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm wie rekursiv ? die funktion soll sich selbst aufrufen ?

ein blödes beispiel (was besseres ist mir jetzt nicht eingefallen...)

Code: Alles auswählen

<?php

function foo($foo, $start=0) {

     $foo = $foo.$start;

     $start++;

     if ($start!=3) $foo = foo($foo, $start);

     return $foo;

}

$result = foo ("test");

echo $result;

?>
man übergibt den string test in die funktion foo und erhält als ergebnis nach drei durchläufen test012 retur...
*** make your own tools (wishlist :: thx)
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Hallo emergence,

meine Frage war eher die, wie ich in einem Modul eine eigene PHP-Funktion aufrufen kann. Wenn ich die einfach so à la

Code: Alles auswählen

$test = foo($mein_array);
aufrufe, bekomme ich eine Fehlermeldung, die besagt, dass die Funktion unbekannt ist.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

die frage versteh ich nicht...

obriges code beispiel von mir funktioniert ohne probleme und kann genau so in einem modul verwendet werden...
*** make your own tools (wishlist :: thx)
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Das geht bei mir irgendwie nicht.

Ich definieren am Anfang des Skriptes eine Funktion:

Code: Alles auswählen

  function get_categories($parentid, $parentarray = "", $granted="")
  {
...
und weiter unten rufe ich sie auf:

Code: Alles auswählen

    $main_array = array();
    $_tree        = get_categories(0, $_main_array);
    $_combo_html  = make_categories_menu($_tree);
Ergibt bei mir:

Code: Alles auswählen

[08-Aug-2005 13:11:40] PHP Fatal error:  Call to a member function on a non-object in /home/christoph/public_html/contenido/cms/front_content.php(563) : eval()'d code on line 695
[08-Aug-2005 13:11:40] PHP Fatal error:  Call to a member function on a non-object in /home/christoph/public_html/contenido/cms/front_content.php(563) : eval()'d code on line 695
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wie sieht denn die ganze funktion aus ?

die fehlermeldung -> Call to a member function on a non-object
sagt ja nur aus das du zb in einer funktion auf eine klassenfunktion zugreifen möchtest die nicht existiert

Code: Alles auswählen

<?php

function foo() {
    $sql="SELECT * FROM con_actions";
    $db->query($sql);
    $db->next_record();
}
foo();

?>
bringt den selben fehler...

Code: Alles auswählen

global $db;
oder

Code: Alles auswählen

$db = new DB_Contenido();
in der funktion zu ergänzen, würde das problem in dem fall beheben...
*** make your own tools (wishlist :: thx)
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

*rotwerd* Danke, hattest wieder Recht!
Gesperrt