Michi: Klasse erzeugt unerklärlichen output

Guten Morgen,

ich stehe vor einem Mysterium:
Eine Klasse erzeugt bei mir einen Output als nicht darstellbares Zeichen, hier mal ein Beispiel:
// ein Skript
<?php
 require_once('klasse.php');
 echo "bar";
?>

// eine Klasse
<?php
class Klasse  {
 echo "foo";
}
?>

Hier sieht dann mein output so aus:
"□foobar";

Also wird scheinbar ganz am Anfang der Klasse ein output generiert, in Form eines nicht darstellbaren Zeichens?

Hat jmd. eine Idee woher der kommen könnte?

Vielen Dank schon mal

Michi

  1. echo $begrüßung;

    Eine Klasse erzeugt bei mir einen Output als nicht darstellbares Zeichen,

    Das liegt sicher nicht an der Klasse.

    // eine Klasse
    <?php
    class Klasse  {
    echo "foo";
    }
    ?>

    Und das ist keine gültige PHP-Syntax.

    hier mal ein Beispiel: "□foobar";

    Hast du mal vor und nach dem Aufruf der Klasse mindestens ein Zeichen ausgeben lassen? Ich bin mir sicher, dass dein □ noch davor erscheinen wird.

    Schreibst du vielleicht den Quelltext mit dem Notepad von Windows und speicherst als UTF-8?

    echo "$verabschiedung $name";

    1. Hallo,

      Hast du mal vor und nach dem Aufruf der Klasse mindestens ein Zeichen ausgeben lassen? Ich bin mir sicher, dass dein □ noch davor erscheinen wird.

      Nein, erscheint dann dazwischen.

      Schreibst du vielleicht den Quelltext mit dem Notepad von Windows und speicherst als UTF-8?

      Nein, UltraEdit aber trotzdem als UTF-8. Habe auch schon nach ASCII konvertiert und es ging trotzdem nicht.

      Viele Grüße

      Michi

      1. echo $begrüßung;

        Hast du mal vor und nach dem Aufruf der Klasse mindestens ein Zeichen ausgeben lassen? Ich bin mir sicher, dass dein □ noch davor erscheinen wird.

        Nein, erscheint dann dazwischen.

        Kürze deine Klasse auf das zusammen, was du brauchst, um den Fehler nachzuvollziehen. Ist er dann weg, lag er im gekürzten Teil. Ist er noch da, untersuche den übriggebliebenen Rest, zur Not mit einem Hex-Editor. Wenn du nichts feststellen kannst, schreibe diesen Minimalteil neu (nicht kopieren) und prüfe damit. Ist er weg, füge den Rest der Klasse hinzu.

        Schreibst du vielleicht den Quelltext mit dem Notepad von Windows und speicherst als UTF-8?

        Nein, UltraEdit aber trotzdem als UTF-8. Habe auch schon nach ASCII konvertiert und es ging trotzdem nicht.

        Ich hatte erst eine BOM (oder Teile davon) im schwachen Verdacht. Doch das ist es nicht. Das Zeichen □ ist in Hex E2 96 A1 (utf-8), entspricht in Unicode 25 A1 und ist kein Ersatzzeichen sondern absichtlich ein weißes Quadrat (oder es ist auf dem Weg hierher entstellt worden).

        echo "$verabschiedung $name";