Eine Funktion in einer Funktion außerhalb der Funktionen Aufrufen?

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

  • Eine Funktion in einer Funktion außerhalb der Funktionen Aufrufen?

    Hallo,

    ich habe da ein Problem kann man eine Funktion inerhalb einer
    Funktion und diese Liegt in einer Klasse aufrufen?

    Datei1.php
    PHP-Code:
    function  test1(test,test)
    {
       
    Inhalt……..
    }
    aktiv_test1 test1
    Datei2.php

    PHP-Code:
    class  test2
    {
          var  
    $verfügbar;
          
          function 
    test2()
         {
             include(
    “Datei1.php”);
             
    $this->verfügbar $aktiv_test1
          
          
    }
         
          function  
    test3()
          {
                
    $fertig $this->verfügbar(“test”,”test”);   
           }

    Kommt bei mir immer das die Funktion verfügbar nicht definiert ist?

    mfG
    Somba

  • #2
    Re: Eine Funktion in einer Funktion außerhalb der Funktionen Aufrufen?

    Original geschrieben von Somba29
    $this->verfügbar = $aktiv_test1
    sso kann doch keine Funktion aufgerufen werden, oder?

    ausserdem
    aktiv_test1 = test1;
    mach mal error_reporting(E_ALL)

    Kommentar


    • #3
      $fertig = $this->verfügbar(“test”,”test”);
      innerhalb deiner klasse gibt es keine methode die "verfügbar" heisst (aber eine membervar heisst so)

      überdenke dein konzept. du versuchst einer funktion einen anderen namen zu geben? das geht nicht. rufe die funktion so auf wie sie initalisiert wurde.
      mfg

      Kommentar


      • #4
        // ... funktion so auf wie sie initalisiert wurde

        PHP-Code:
        class  test2
        {
              
              function 
        test2()
             {
                 include(
        “Datei1.php”);
                 
        $this->aktiv_test1;
              
              }
             
              function  
        test3()
              {
                    
        $fertig =  $this->aktiv_test1(“test”,”test”);   
               }

        geht auch nicht

        Kommentar


        • #5
          mit $this sprichst du alle member- vars und methoden an.

          vieleicht verstehst du es hiermit besser:

          PHP-Code:
          function machwas(){
              echo 
          "ichbinnichtinderklasse<br>";
          }

          class 
          foo{
              
              var 
          $bar;
              
              function 
          machwas(){
                  echo 
          "ichbininderklasse<br>";
              }
              
              function 
          foobar(){
                  
          machwas();
                  
          $this->machwas();
              }
          }

          $f = new foo();
          $f->foobar();

          /* ausgabe:

          ichbinnichtinderklasse
          ichbininderklasse

          */ 
          mfg

          Kommentar


          • #6
            ausserdem gibts bei mir massenhaft Fehler aus also mach error_reporting(E_ALL)

            Kommentar


            • #7
              hab es etwas anders gelöst mit einer Instanz

              Datei1.php
              PHP-Code:
              class Test_A 
              {
                  function  
              test1(test,test)
                  {
                    
              Inhalt……..
                  }


              Datei2.php

              PHP-Code:
              class  test2
              {
                    var  
              $verfügbar;
                    
                    function 
              test2()
                   {
                       include(
              “Datei1.php”);
                       
              $this->verfügbar = new Test_A;
                    
                    }
                   
                    function  
              test3()
                    {
                          
              $fertig $this->verfügbar->test1(“test”,”test”);   
                     }

              geht wunderbar genau so wich es haben wollte.

              Somba

              Kommentar


              • #8
                der code sieht ja schomal ganz anders aus als der eröffnungsthread
                mfg

                Kommentar


                • #9
                  Hallo hall,

                  ich dachte immer, eine Klasse sieht die Funktion nicht wenn sie
                  außerhalb geschrieben wird und ich muss sie immer erst verfügbar
                  machen innerhalb, das es so geht wie du beschreiben hast ist natürlich
                  auch eine gute Idee.

                  Kommentar


                  • #10
                    na irgendwie hab ich dich wohl falsch verstanden; wusste nicht das datei 1 auch ein objekt ist

                    klasse::methode
                    Zuletzt geändert von hall; 15.08.2006, 18:13.
                    mfg

                    Kommentar


                    • #11
                      // .. verstanden; wusste nicht das datei 1 auch ein objekt ist
                      ne hattest schon richtig verstanden am Anfang hatte ich nur
                      eine Funktion in der Datei1.php, hab mir dann halt
                      überlegt wie ich es noch anders lösen
                      kann und da kam mir eine Instanz auf eine Klasse in den sin.

                      Kommentar


                      • #12
                        alt:
                        PHP-Code:
                        function  test1(test,test)
                        {
                           
                        Inhalt……..
                        }
                        aktiv_test1 test1
                        besser - mit einer stringvariabeln, welche den Funktionsnamen enthält:
                        PHP-Code:
                        function  test1(test,test)
                        {
                           
                        Inhalt……..
                        }
                        aktiv_test1 'test1'
                        Ansonsten scheint es richtig.


                        Das entsprechende Beispiel im php Manual, Stichwort "Variable functions" lautet:
                        PHP-Code:
                        function foo() {
                            echo 
                        "In foo()<br />\n";
                        }

                        $func 'foo';
                        $func(); 
                        möglicherweise geht auch, was ich naiverweise denken würde:
                        aktiv_test1=&test1;

                        Kommentar

                        Lädt...
                        X