Seite 1 von 1

Eigene Funktion in Modul

Verfasst: Do 4. Aug 2005, 15:00
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

Verfasst: Do 4. Aug 2005, 15:25
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...

Verfasst: Fr 5. Aug 2005, 11:10
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.

Verfasst: Fr 5. Aug 2005, 11:53
von emergence
die frage versteh ich nicht...

obriges code beispiel von mir funktioniert ohne probleme und kann genau so in einem modul verwendet werden...

Verfasst: Mo 8. Aug 2005, 11:10
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

Verfasst: Mo 8. Aug 2005, 11:28
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...

Verfasst: Mo 8. Aug 2005, 11:53
von phpchris
*rotwerd* Danke, hattest wieder Recht!