Zugriff auf Klassenfunktion ohne Objekt

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

  • Zugriff auf Klassenfunktion ohne Objekt

    Hallo,

    ich habe eine Klasse "Test". Diese Klasse hatte eine Funktion "rueckgabe($wert)", die dem übergebenen Wert etwas rechnet und einen Wert zurück geben soll.

    Wie greife ich nun auf diese Funktion zu, ohne das ich ein Objekt der Klasse "Test" erzeugen muss. Wie muss die Klasse oder Funktion deklariert werden?

    In etwa: Test::rueckgabe(44)

    Vielen Dank im Voraus.

    Mfg
    Sven.

  • #2
    PHP-Code:
    class Test {
      function 
    rueckgabe($wert) {
        return 
    $wert;
      }
    }

    $foo Test::rueckgabe(42); 

    Kommentar


    • #3
      Klappt leider nicht...

      Fatal error: Can't use function return value in write context in X:\Projects\__Server__\xampp\_webs\storefinder.de\classes\DataLoader.php on line 36

      Kommentar


      • #4
        Original geschrieben von mchashi
        Klappt leider nicht...
        Doch, das gepostete Beispiel "klappt" so.

        Fatal error: Can't use function return value in write context ... on line ...
        Und uns den Kontext, von dem da die Rede ist, mal zugänglich zu machen, übersteigt wieder mal die Intelligenz des Fragers ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Original geschrieben von wahsaga
          Und uns den Kontext, von dem da die Rede ist, mal zugänglich zu machen, übersteigt wieder mal die Intelligenz des Fragers ...?
          Hast du dir etwa noch keine Glaskugel gekauft...?

          Kommentar


          • #6
            Mei ihr seids ja fies!

            @ mchashi Poste mal einfach deinen Quelltext, und gib hier nicht irgendein Pseudo-Das-Geht-Nicht-Und-Will-Nicht-Zeug an. Anhand des Quelltextes kann dir dann bestimmt jemand weiterhelfen, aber ohne das zu sehen per Ferndiagnose (also wie gesagt mit Glaskugel) können das die Leute hier (zumindest die meisten soweit ich weiß) nicht.

            Gruß
            Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

            Kommentar


            • #7
              Danke für Eure netten Antworten...

              Aus der folgenden Klasse will ich die Funktion "securityReplace()" aufrufen.

              PHP-Code:
              <?php
              // ============================================================================
              /**
               * Database
               *
               * @access        public
               * @version        V. 1.0 - 2005/10/17 23:31
               * @copyright     
               * @author          < >
               */
              // ============================================================================

              class Database extends mysqli
              {
                  private        
              $countObj;        //  Zählt die angegten Datenbankobjekte


                  /**************************************************************************
                      Konstruktor
                  */
                  
              function __construct($host 'localhost'$user 'root'$password ''$database 'storeFinder')
                  {
                      
              $mysqliObj parent::__construct($host$user$password$database);

                      if ( 
              mysqli_connect_error() ) {
                          throw new 
              Exception'Connect exception: ' mysqli_connect_error() );
                      }
                      else {
                          
              $this->countObj++;
                          return (
              $mysqliObj);
                      }
                  }

                  
              /**************************************************************************
                      Destruktor
                  */
                  
              public function __destruct() {
                      
              parent::close();
                  }

                  
              /**************************************************************************
                      Schickt eine SQL-Anfrage an die Datenbank
                  */
                  
              public function query($query)
                  {
                      
              $result parent::query($query);

                      if ( 
              mysqli_error($this) ) {
                          throw new 
              Exception'Query exception: ' mysqli_error($this) );
                      }

                      return (
              $result);
                  }

                  
              /**************************************************************************
                      Entwertet kritisches Hochkomma
                  */
                  
              public function securityReplace($string) {
                      
              $search "'";
                      
              $replace "''";
                      return ( 
              str_replace($search$replace$string) );
                  }

                  
              /**************************************************************************
                      Gibt die Anzahl der angelegten Datenbankobjekte zurück
                  */
                  
              public function getCountObj() {
                      return (
              $this->countObj);
                  }
              }
              ?>
              Zuletzt geändert von admin; 13.01.2008, 18:42.

              Kommentar


              • #8
                PHP-Code:
                public static function securityReplace($string) {
                        ....
                    } 
                Und deine Wünsche werden in Erfüllung gehen.
                Download ET-Chat v3.x.x

                Kommentar


                • #9
                  und wo ist das problem? entweder du machst die funktion statisch,
                  PHP-Code:
                  public static function securityReplace() {} 
                  oder du rufst sie auf:

                  PHP-Code:
                  class Database {
                    public function 
                  bla() {
                            return 
                  $this -> securityReplace();
                    }
                    public function 
                  securityReplace() {

                    }

                  by the way, dein 'security replace' ist schwachsinn.

                  http://de3.php.net/manual/en/functio...ape-string.php

                  grüße
                  axo

                  Kommentar


                  • #10
                    Siehste, kaum Code gepostet und schon gibts Hilfe.

                    Ehm, da ich in PHP ja auchnich so bewandert bin (besonders in OOP mit PHP, würde ich doch ma gerne wissen, was das mit dem "static" jetzt eigentlich auf sich hat, in Java arbeite ich in der Schule etwas mit OOP aber irgendwie ham wir das nich durchgenommen oder ich war nich da. Da gibts nämlich den selben Schlüsselbegriff.

                    Danke schonmal!

                    Gruß

                    ArSeN
                    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                    Kommentar


                    • #11
                      okay, vielen Dank... klappt jetzt...

                      benutze jetzt auch $this->real_escape_string();

                      Kommentar

                      Lädt...
                      X