“Trying to get property of non-object in”

Samstag, 27. Februar 2010

Es ist schon interessant, wie einige Programmierer der PHP-Gemeinde auf die "NOTICE" "Trying to get property of non-object in" umgeht.
Wenn man mal danach sucht sieht man auf den ersten zwei, drei Seiten lediglich die Antwort: "[..]kein Fehler, sondern nur ein Hinweis [..]" oder "[..]Fehlertolerenz zu hoch[..]".
Doch zum allgemeinem Verständnis, auch wenn es nur eine Notice ist so bedeutet es trotzdem das auf die Eigenschaft auf die man zugreifen möchte nicht zugegriffen werden kann. Entweder weil sie nicht existiert (was aber dann mit der "Notice: Undefined property:..." einhergeht) oder das Objekt nicht instantiiert ist. Das heißt für alle Geplagten, die nur diese Notice erhalten. Code durchsuchen und schauen ob der Zugriff auf die Eigenschaft auch wirklich erst erfolgt nachdem das Objekt erstellt worden ist.

 

Noch einmal: Doppeltes margin im IE6

Sonntag, 21. Februar 2010

In letzter Zeit wurde ich immer häufiger gefragt, wie man das "doppelte-margin-Problem" beim IE6 löst.

Hier nun nocheinmal die Lösung, die doch recht häufig im Netz zu finden ist:

Doch zunächst das Problem:

Elemente wie z.B. zwei div-Container, die mit float:left nebeneinander platziert werden sollen und dabei einer der Container ein margin hat, haben im IE6 das recht interessante Verhalten, dass der margin Wert verdoppelt wird. Hintergründe dazu können nur in Redmond erfragt werden.

Die Lösung:

Das floatende Element erhält ein display:inline.
Da die Eigenschaft in diesem Fall keine Auswirkung auf die anderen Browser hat, benötigt man auch kein IE6 Hack, sondern kann nun also bei jedem Floating mit einem margin einfach ein display:inline hinzufügen, um den IE6 das richtige Verhalten beizubringen.

P.S.: Ich finde es erschreckend, dass noch soviele Unternehmen den IE6 benutzen.
An allle Admins: Es wird Zeit etwas zu ändern!