phpbar.de logo

Mailinglisten-Archive

[php] unexpected T_STRING ???

[php] unexpected T_STRING ???

Markus Wolff php_(at)_phpcenter.de
Sat, 10 Aug 2002 16:47:40 +0200


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