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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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)

    Comment


    • #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

      Comment


      • #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

        Comment


        • #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

          Comment


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

            Comment


            • #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

              Comment


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

                Comment


                • #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.

                  Comment


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

                    klasse::methode
                    Last edited by hall; 15-08-2006, 18:13.
                    mfg

                    Comment


                    • #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.

                      Comment


                      • #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;

                        Comment

                        Working...
                        X