[OOP] Script findet Funktion nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [OOP] Script findet Funktion nicht

    Guten Morgen,

    bin echt platt. Folgendes:

    PHP-Code:
    $menu = new Navigation($db$language$cat_id);

    is object($menu// gibt 1 zurück

    if ($menu->returnHasSubmenu()) {
    // etc...

    In der Klasse Navigation ist die Funktion vorhanden:

    PHP-Code:
    function returnHasSubmenu()
    {
       
    //etc

    Die Fehlermeldung des Scripts:

    Call to undefined function: returnhassubmenu() in D:\pages\companyprofile.php on line 81


    Also sowas verrücktes habe ich bisher noch nicht gehabt.

    Was ist da los?

  • #2
    groß/kleinschreibung ?!?!?!

    returnHasSubmenu()

    returnhassubmenu()


    ?!

    Kommentar


    • #3
      Hallo,

      schau dir doch die Funktionen an.
      Dort sind die Namen identisch.

      Nur bei der Fehlermeldung ist der Funktionsname klein geschrieben.
      Das ist aber immer so. Daran kann es nicht liegen.

      Kommentar


      • #4
        PHP-Code:
        echo 'Klasse: '.get_class($menu);
        echo 
        '<pre>';
        print_r(get_class_methods(get_class($menu)));
        echo 
        '</pre>';
        echo 
        'Methode vorhanden: '(int)method_exists($menu'returnHasSubmenu'); 
        ausgabe?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Klasse: navigation

          Array
          (
          [0] => navigation
          [1] => returnmenu
          [2] => returnsubmenu
          )

          Methode vorhanden: 0


          OK, ist nicht vorhanden.
          Aber warum nicht?

          Ist doch drin in der Klasse.

          Kommentar


          • #6
            Ist doch drin in der Klasse.
            Nich dass ich dir das nicht glauben würde... aber n bissl code wär hilfreicht

            Kommentar


            • #7
              anscheinend nicht, wenn die klasse nicht allzu umfangreich ist, dann poste sie mal, wenn doch, dann häng sie an (in *.txt umbenennen, da du php-dateienn nicht anhängen darfst)
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                PHP-Code:
                /**
                 * Class that handles Menues
                 *
                 */

                class Navigation

                    
                /**
                                 * Contains the path to the php file
                                    *
                                    * @var     int
                                    * @access  public
                                    */
                    
                var $_pathToPage;
                        
                /**
                                 * Contains the current category chosen
                                    *
                                    * @var     int
                                    * @access  public
                                    */
                                
                var $_cat_id;
                    
                /**
                                 * Database object
                                    *
                                    * @var     int
                                    * @access  private
                                    */
                                
                var $_db;
                        
                /**
                                 * Contains the language chosen
                                    *
                                    * @var     chat
                                    * @access  private
                                    */
                                
                var $_language;
                        
                /**
                                 * Contains the current category chosen
                                    *
                                    * @var     int
                                    * @access  private
                                    */
                                
                var $_parent_id;
                                    
                /**
                                 * Contains the current category chosen
                                    *
                                    * @var     bool
                                    * @access  private
                                    */
                             
                var $_noSubcat false;
                    
                       
                /*
                                 * Class constructor
                                    *
                                    * @param  $db obj  Database Object 
                                    * @access public
                                    */
                    
                function Navigation(&$db$language$parent_id)
                    {
                        
                $this->_db $db;
                                                
                $this->_language $language;
                                                
                $this->_parent_id $parent_id
                    } 
                // end func Navigation
                       
                             
                function returnMenu()
                                {
                        
                $this->_db->raw_query("SELECT cat_id, parent_id, name, file
                                                                      FROM navigation_structure ns, navigation_translation nt
                                                                                                                            WHERE (ns.parent_id = '0')
                                                                                                                                        AND (ns.trans_id = nt.trans_id)
                                                                                                                               AND (nt.lang = '"
                .$this->_language."')
                                              ORDER BY order_ ASC"
                );

                                                while(
                $row $this->_db->fetch_array()) {
                            
                $categories[] = $row;
                        }

                        if (
                count($categories) == 0) {
                                        return 
                false;
                                    } else {
                                        return 
                $categories;
                                    }
                                } 
                // end func returnMenu
                                
                                /**
                                 * Returns the children of father in a father pointer table
                                    *
                                    * @access public
                                    * @return array
                                    */
                                
                function returnSubmenu()
                                {
                        
                $this->_db->raw_query("SELECT cat_id, parent_id, name, file
                                                                      FROM navigation_structure ns, navigation_translation nt
                                                                                                                            WHERE (ns.parent_id = '"
                .$this->_parent_id."')
                                                                                                                                        AND (ns.trans_id = nt.trans_id)
                                                                                                                               AND (nt.lang = '"
                .$this->_language."')
                                              ORDER BY order_ ASC"
                );
                                    
                                                while(
                $row $this->_db->fetch_array()) {
                            
                $categories[] = $row;
                        }
                                        return 
                $categories;
                                    }
                    } 
                // end func returnSubmenu
                                
                                /**
                                 * Function checks whether there are any more subcategories. 
                                    * If there are not then the function will return false otherwise true.
                                    * 
                     * @access  public
                                    * @return  bool
                                    */
                                
                function returnHasSubmenu()
                                {
                        
                $this->_db->raw_query("SELECT cat_id, parent_id, name, file
                                                                      FROM navigation_structure ns, navigation_translation nt
                                                                                                                            WHERE (ns.parent_id = '"
                .$this->_parent_id."')
                                                                                                                                        AND (ns.trans_id = nt.trans_id)
                                                                                                                               AND (nt.lang = '"
                .$this->_language."')
                                              ORDER BY order_ ASC"
                );
                                    
                                                while(
                $row $this->_db->fetch_array()) {
                            
                $categories[] = $row;
                        }

                        if (
                count($categories) == 0) {
                                        return 
                false;
                                                } else {
                                                    return 
                true;
                                } 
                // end func returnHasSubcat

                Kommentar


                • #9
                  zähl mal deine {}
                  Kissolino.com

                  Kommentar


                  • #10
                    OH Mann,

                    das gibt es nicht!!
                    Und da suche ich fast eine Stunde nach diesem Fehler.
                    DANKE!!!

                    Hätte wahrscheinlich nochmals eine Sztunde dran gesessen.


                    Mal eine andere Frage.
                    Ist es überhaupt klug ein Datenbankobjekt an eine Klasse zu übergeben ?

                    Ich meine ich habe echt Probleme wiederverwertbaren Code zu schreiben. Da bin ich eine Niete, aber das ist ja gerade Sinn und Zweck der Klassen.

                    Ergibt die Klasse Sinn vom Standpunkt des wiederverwertbaren Codes ?


                    Danke
                    Zuletzt geändert von compuboy1010; 06.05.2004, 10:39.

                    Kommentar

                    Lädt...
                    X