Codeschnippsel

Eine kleine Sammlung an Scripten und Funktionen, die ich einmal zusammengeschrieben habe und die vielleicht interessant sein könnten.

PHP

php2js

php2js([array php [, string name [, bool useVar]]])

Die Funktion php2js() übersetzt ein PHP-Array nach JavaScript. Dabei wird die Struktur und Multidimensionalität beibehalten. Strings und Zahlen werden bei den Schlüsseln und Werten ebenfalls unterschieden.

str_replace_count

string str_replace_count(string search, string replace, string subject, int count)

Die Funktion str_replace_count ersetzt search durch replace in subject, jedoch nur count mal. Es sind zwei mögliche Implementationn gezeigt, es sollte jedoch die erste verwendet werden. Sie laufen beide ab PHP3 (die erste Version müsste jedoch ein wenig umgearbeitet werden, da !== dort noch nicht bekannt ist.

str_replace() im im PHP-Manual

array_walk_recursive

Die Funktion array_walk_recursive() zeigt zwei Varianten, wie man ein Array rekusiv durchlaufen und eine Callback-Funktion auf die Elemente anwenden kann, ähnlich wie array_walk().

Zum einen kann man einfach in der Callback-Funktion abfragen, ob es sich bei dem Wert um ein Array handelt und ggf. die Funktion erneut aufrufen. Der Ablauf dazu ist in callback_recursive gezeigt. Dieser Weg ist bereits unter PHP3 lauffähig.

Zum anderen ist eine Funktion array_walk_recursive(array &array, string callback) vorhanden: callback ist die Callback-Funktion, die auf alle Elemente von array angewendet werden soll. In PHP5 ist diese Funktion bereits so verfügbar, diese Funktion ist also für PHP4 gedacht.

array_walk() und array_walk_recursive() im im PHP-Manual

= != == != === !

Ein häfigr Flüchtigkeitsfehler ist if ($a = 'foo') anstelle von if ($a == 'foo'). Man wundert sich, warum scheinbar immer TRUE zurückgegeben wird, obwohl $a doch den Wert "bar" hat. Das liegt daran, dass eine Zuweisung immer den zugewiesenen Wert (hier also "foo") zurückgibt und dies also TRUE gewertet wird (da es keine 0 oder kein Leerstring ist). In dieser Übersicht sind verschiedene Zuweisungen und Vergleiche aufgelistet.

Typen-Vergleichstabelle im im PHP-Manual

noch unvollständig:

last update: 2007/04/04
best view with a Browser