Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] __construct wird nicht aufgerufen

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

  • [Erledigt] __construct wird nicht aufgerufen

    Hallo,

    ich habe ein kleines und seltsames Problem. Normalerweise wird ja seit PHP 5 die magische Klasse __construct als Konstruktor verwendet und sollte ja normalerweise beim Erstellen eines Klassenobjektes aufgerufen werden. Jedoch hat es bei mir nicht funktioniert, hier kurz die Infos und der Beispielcode:

    BS: Linux Debian Lenny
    PHP-Version: 5.2.6-1+lenny3
    Aufruf: mittels Shell php -f check_firewall.php


    Funktioniert nicht, Konstruktor wird nicht aufgerufen:
    PHP-Code:
    class Iptables {
        
    /**
         * @access public
         * __contruct
         */
        
    public function __contruct ()
        {
            echo 
    'Konstrukur aufgerufen' "\n";
        }


    Funktioniert, Konstruktor wird aufgerufen:
    PHP-Code:
    class Iptables {
        
    /**
         * @access public
         * __contruct
         */
        
    public function __contruct ()
        {
            echo 
    'Konstrukur aufgerufen' "\n";
        }


    Aufruf:
    PHP-Code:
    $iptables = new Iptables(); 

    Arg, habe den Fehler __construct war falsch geschrieben.


  • #2
    Zitat von Sascha Ahlers Beitrag anzeigen

    ... die magische Klasse __construct...
    Es gibt doch nur magische Konstanten und magische Methoden, zu denen __construct nicht gehört - oder irre ich mich da?

    Kommentar


    • #3
      Das PHP-Handbuch ist bei der Wortverwendung nicht immer konsequent, wodurch man da etwas verwirrt sein könnte. Im Grunde kann man folgendes im Kopf behalten: Alles, was mit zwei Unterstrichen anfängt, also mit "__" gehört zu der Familie der Magie und sollte als solches niemals mit eigenen Namen belegt werden. Und __construct, sowie __destruct nehmen eine Sonderrolle dabei ein.
      www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
      Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

      Kommentar


      • #4
        Zitat von mepeisen Beitrag anzeigen
        Alles, was mit zwei Unterstrichen anfängt, also mit "__" gehört zu der Familie der Magie und sollte als solches niemals mit eigenen Namen belegt werden. Und __construct, sowie __destruct nehmen eine Sonderrolle dabei ein.
        Danke für die Info.

        Habe gerade noch folgendes dazu gefunden:

        ... Streng genommen sind auch diese beiden Methoden magische Methoden, weil sie BEIM Erzeugen bzw. Zerstören eines Objekts ausgeführt werden. In der Regel werden sie aber nicht so bezeichnet.
        Quelle: Net Developers/die-magischen-methoden-von-php-5-interzeptoren/

        Kommentar


        • #5
          Kontruktor aufgerufen.

          Kommt drauf an, was man unter magisch versteht. Die Bedeutung dessen hat sich mir noch nie erschlossen.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            "Black magic" ist vielleicht der bessere Ausdruck

            Gerade eben wieder gehabt, dass GPC-Werte "verzaubert" wurden. Ist ja zum Glück "deprecated" und fliegt mit der nächsten Version raus.

            Kommentar

            Lädt...
            X