Freitag, April 13, 2007

Typ Definition in Funktionen

Java ist hier sehr restriktiv und Typenfehler sind sehr unwahrscheinlich, da diese bereits beim Kompilationszeitpunkt erkannt werden:


public void processArray(String[] arString){
for(int i=0;i


Dies wird man in Java spätestens bei der Kompilation merken, wenn nicht schon beim programmieren (Eclipse wird hier nämlich mekern).

In PHP ist dies jedoch nicht ganz so offensichtlich:

public function processArray($arString){
foreach($arString as $string){
print '$string';
}
}

processArray("Hallo Welt");


Dies wird erst zur Laufzeit zu einem Fehler führen und zwangszweise zu einem Programmabbruch. Dem kam man Vorbeugen:

public function processArray(array $arString){
foreach($arString as $string){
print '$string';
}
}


Dies würde dem folgenden entsprechen:

public function processArray($arString){
if (!($arString instanceof array){
foreach($arString as $string){
print \'$string\';
}
}
}


Den grossen Vorteil, den ich darin sehe, ist vor allem die Leserlichkeit. Beim Entwickeln wird man sich wohl um diese Dinge nicht kümmern, da man sehr vertraut mit dem Code ist, will man jedoch später etwas ändern bzw. jemand anders will den Code anschauen, so wird es um ein einfaches einfacher sein, wenn die Variablen bereits einen Typ haben.

Zudem benutze ich die Entwicklungsumgebung Zend Studio, welches einen sehr guten Autovervollständiger hat. Somit wird mir beim Aufrufen jeweils auch gezeigt, was für ein Typ die Variable sein muss.