Mailinglisten-Archive |
Hi,
On Sunday 01 August 2004 12:23, Kai Wenk wrote:
> Hi,
>
> Johannes Schlueter wrote:
> > - Eine Fehlerfunktion, die statt der "goto error" mit "return
> > my_error_function(db_error());" aufgerufen wird - auch nicht besonders
> > übersichtlich und wenn man im Fehlerfall mit mehreren Reosurcen Arbeiten
> > will eine lange Parameterliste
>
> Eine Fehlerbehandlung per Funktion, der am Besten noch der SQL-Statement
> und/oder die Datei- bzw. Zeilenangabe ( __ FILE __ / __ LINE __ )
> übergeben wird.
Führt aber, wenn man es mit mehreren Resourcen zu tun hat zu recht langen
Paramterlisten in der Funktion und bei mehreren solcher Stellen muss man
aufpassen keinen Namenskonflikt zu bekommen.
> Dies wäre mit goto: nicht möglich.
Das SQL-Statement zu bekommen wäre Möglich - ich bleibe ja im selben Scope und
habe somit Zugriff auf die selben Variablen.
<?php
function do_something() {
$sql= 'SELECT * FROM foo';
$result = db_query($sql);
if (!$result) {
goto error;
}
/* ... */
return true;
error:
echo "Fehler bei $sql";
return false;
}
?>
Auch wenn ich hier in zig Mails Goto "verteidige": Goto ist (in PHP) nicht
umbedingt nötig gelegentlich aber ganz nett (insbesondere auch bei Parsern
und automatisch generiertem Code...)
johannes
--
Johannes Schlüter
php::bar | Der Treffpunkt für Einsteiger und Profis http://www.phpbar.de
php::bar PHP Wiki - Listenarchive