Mailinglisten-Archive |
On Sat, 10 Aug 2002 14:44:04 +0200 Jens Kohl <j.kohl_(at)_style-id.de> wrote: > Hallo Markus, > > Samstag, 10. August 2002, 03:32:56, schriebst du: > > MW> Wenn ich mir aber den Quelltext von (exemplarisch) z.B. PEAR::DB > MW> anschaue, dann dürfte die Methode DB::connect() überhaupt nicht > MW> funktionieren - denn die ist funktional exakt genauso aufgebaut wie > MW> meine und gibt ebenso ein Objekt zurück, ohne bei der Return-Anweisung > MW> Klammern zu verwenden. Geht dort aber wunderbar. > > Sicher? Ich würde mal sagen, das der Parse Error daher rührt, dass > PHP mit dem new hinter return nichts anfangen kann, und nur einen > Objekt (also das Ergebnis einer Instanz) übergeben kann. > > Demnach würde wohl auch > > $obj = new Instanz(); > return $obj; > > genauso gehen wie > > return (new Instanz()); So wäre es ja wenigstens noch logisch! Aber es ist nicht so... ich habe meine Funktion in drei Varianten probiert: 1. $obj = new Instanz(); return $obj; --> Exakt so macht es DB::connect() auch, dort geht es, bei mir wurde wieder der gleiche Error geschmissen 2. (Klasse von PEAR abgeleitet) return $this->raiseError("Bla",0); --> Auch wieder die gleiche Fehlermeldung 3. return new Pear_Error("Bla",0); --> Geht halt nur mit Klammern Bei Methode 3 kann ich das mit den Klammern nachvollziehen. Methode 1 und 2 ziehen sich quer durch das gesamte PEAR-Framework und funktionieren dort ohne Klammern - bei mir ging´s nur mit Klammern drumrum. Und genau das ist der Punkt, den ich nicht verstehen kann. Gruß, Markus -- Markus Wolff <wolff_(at)_21st.de>
php::bar PHP Wiki - Listenarchive