Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] __construct wird nicht aufgerufen

Einklappen

Neue Werbung 2019

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.
      [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
      Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

      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.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          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