Andreas

Creating default object from empty value bei der Verwendung von chained Properties

04. Dezember 2017 · Programmierung · andreas · Kein Kommentar

Erstellt man in PHP eine neue Instanz der vordefinierten Klasse StdClass, so können dieser anschließend beliebige Eigenschaften zugewiesen werden:

$test = new StdClass(); $test->property = 1;

Versucht man allerdings mehrere Eigenschaften ohne vorherige (Teil-)Initialisierung zu verketten, wird dies von PHP mit einer entsprechenden Warnung kommentiert:

$test->anotherproperty->propertytoo = 7; Warning: Creating default object from empty value in ... on line ..

Um diese Warnung zu vermeiden (und richtig zu initialisieren), kann eine kleine Erweiterung der Klasse StdClass vorgenommen werden, welche beim Zugriff auf jede Eigenschaft prüft, ob diese bereits existiert und ggf. das Anlegen der Instanz nachholt:

class myData extends StdClass { public function __get($name) { if (!isset($this->{$name})) { $this->{$name} = new myData(); } return $this->{$name}; } }

Anschließend können in Instanzen dieser Klasse beliebige verkettete Eigenschaften definiert werden, ohne daß PHP eine Warnung ausspuckt:

$test = new myData(); $test->property = 5; $test->anotherproperty->property = 7;

Die neue Klasse hat keine Nachteile bzg. der Verwendung gegenüber der unmodifizierten Klasse “StdClass”, auch Funktionen wie z.B. “json_encode()” funktionieren weiter problemlos.


NVIDIA Telemetrie-Dienste unter Windows 7

28. November 2017 · Hardware · andreas · Kein Kommentar

Bei der Aktualisierung des NVIDIA-Treibers auf die aktuelle Version “388.31-desktop-win8-win7-64bit-international-whql” blitzte, obwohl lediglich die Treiber aus- und GeForce Experience und NVIDIA 3D Vision als Installationsoptionen abgewählt wurden, kurz der Hinweis auf, daß ungefragt irgendwelche NVIDIA Telemetrie-Dienste installiert wurden.

Ein Blick in die aktuell laufenden Prozesse zeigte einen entsprechenden Dienst, der sich in der Diensteverwaltung aber problemlos beenden und deaktivieren ließ.

Eine Recherche im Internet brachte die Erkenntnis, daß die Sammlung von Telemetriedaten neuerdings wohl Teil des Treibers ist und nicht wie früher Teil der Experience. Die im Tool “Disable Nvidia Telemetry” angegebenen Tasks wurden bei der Installation aber nicht eingeplant.


Summer is coming

23. November 2017 · Funstuff · andreas · Kein Kommentar

Die Winds of Winter werden wohl nochmal verschoben …


Lesenswert XVII

18. November 2017 · Lesenswert · andreas · Kein Kommentar

IKEA Ersatzteilservice

11. November 2017 · IMHO · andreas · Kein Kommentar

Letztes Wochenende beim Umbau eines Stolmen-Regals festgestellt, daß ein paar Schrauben leider nicht mehr auffindbar sind.

Abends das Ersatzteilformular von IKEA ausgefüllt, nach ein paar Minuten die automatische Bestätigung und heute, drei Tage nach der Bestellung, sind die benötigten Schrauben als kostenlose Ersatzlieferung im heimischen Briefkasten gelandet.

Kein Vergleich zum “Service” eines Mitbewerbers, bei dem im Originalpaket fehlende Schrauben und Scharniere nur nach unzähligen Telefonaten nach Wochen nachgeliefert wurden.