was stimmt mit diesem Code nicht?

laonline.ch

Grünschnabel
Hi @all!

Ich probiere jetzt schon stunden-lang den Fehler an diesem Code zu finden - ergebnisslos!

Hier mal der Code:

PHP:
<?php
$string = <<<MERKER
Dies ist ein Beispiel für einen String,
der über mehrere Zeilen reicht; erreicht
durch den Einsatz der here doc-Syntax.
MERKER;

//-------------------------------------

class cider
{
var $cider;
var $eire;
function cider()
{
$this->cider = ''Wahrzeichen'';
$this->eire = array (''Riesenrad'',''Prater'');
}
}
$cider = new cider();
$ort = ''Wien'';

echo <<<CORK
Die Hauptstadt von Östereich ist ''$ort'', dessen
$cider->cider das {$cider->eire[1]}
im [$cider->eire[2]} ist!
<<<CORK;

Und hier die Fehlermeldung:
Code:
Parse error: parse error in /usr/local/psa/home/vhosts/laonline.ch/httpdocs/test.php on line 16

Was soll ich tun? Wer kann mir helfen?

Greets
-=[la]=-
 
Nur ein kurzer Test...

PHP:
<?php
$string = <<<MERKER
Dies ist ein Beispiel für einen String,
der über mehrere Zeilen reicht; erreicht
durch den Einsatz der here doc-Syntax.
MERKER;

//-------------------------------------

class cider
{
var $cider;
var $eire;
function cider()
{
$this->cider = "Wahrzeichen";
$this->eire = array (''Riesenrad'',''Prater'');
}
}
$cider = new cider();
$ort = ''Wien'';

echo <<<CORK
Die Hauptstadt von Östereich ist ''$ort'', dessen
$cider->cider das {$cider->eire[1]}
im [$cider->eire[2]} ist!
<<<CORK;
 
jetzt habe ich statt
PHP:
''Wahrzeichen''
mal geschrieben
PHP:
"Wahrzeichen"
- und siehe da- der text wurde rot!
Warum?

greets
-=[la]=-
 
Zuletzt bearbeitet:
das habe ich jetzt versucht, aber es kommt folgende Fehlermeldung:

Code:
Parse error: parse error in /usr/local/psa/home/vhosts/laonline.ch/httpdocs/test.php on line 27

Was soll ich bloss tun?

greets
-=[la]=-
 
hmm

soviel ich weiss muss man die variablen in php nicht vor ihrem einsatz schon deklarieren
also das var $cider; usw braucht es glaub ich nicht
soviel ich weiss braucht man das nur in javascript

aber j0, kann sein das ich mich irre

greets daIllu ;-)
 
könnte es nicht auch möglich sein, das es nicht funktioniert, weil ich es in keine Datei eingefügt habe?

Hier mal der Inhelt der Datei test.php:

PHP:
<?php
$string = <<<MERKER
Dies ist ein Beispiel für einen String,
der über mehrere Zeilen reicht; erreicht
durch den Einsatz der here doc-Syntax.
MERKER;

//-------------------------------------

class cider
{
var $cider;
var $eire;
function cider()
{
$this->cider = "Wahrzeichen";
$this->eire = array ("Riesenrad","Prater");
}
}
$cider = new cider();
$ort = "Wien";

echo <<<CORK
Die Hauptstadt von Östereich ist "$ort", dessen
$cider->cider das {$cider->eire[1]}
im [$cider->eire[2]} ist!
<<<CORK;

Und diese Datei lasse ich nun auf meinem Server laufen.

Ist das Falsch so?

greets
-=[la]=-
 
Zum Abschluss einer Zeichenkette im "here doc"-Syntax schreibt man lediglich den Merker, das '<<<' kannst du weglassen. Aber eben nur am Ende.
Obwohl's mir ja schleierhaft ist, warum du diese Syntax verwendest... Zeichenketten kann man auch mit " und ' abgrenzen.
Ein weiterer Fehler war, dass du das erste Element in deinem Array mit [1] ansprechen willst. Richtig wäre aber [0], denn das erste Element in einem numerischen Array hat den Index 0.
Dann hattest du noch einen Tippfehler in deinem Code, in der Zeile 26 müsste statt dem '[' ein '{' stehen.

Hier der berichtigte Quellcode (diesmal ohne "here doc":
PHP:
<?
class cider
{
var $cider;
var $eire;
function cider()
{
$this->cider = "Wahrzeichen";
$this->eire = array ("Riesenrad","Prater");
}
}
$cider = new cider();
$ort = "Wien";

echo "Die Hauptstadt von Östereich ist \"$ort\", dessen
$cider->cider das {$cider->eire[0]}
im {$cider->eire[1]} ist!";
?>

Wenn du darauf bestehst, sieht die Ausgabe mit "here doc" so aus:
PHP:
echo <<<CORK
Die Hauptstadt von Östereich ist "$ort", dessen
$cider->cider das {$cider->eire[0]}
im {$cider->eire[1]} ist!
CORK;



reima
 
Danke für deine Hilfe, reima

Ich habe nur noch das folgende Problem:
Die Ausgabe des Codes ist nun:
Code:
Die Hauptstadt von Östereich ist "Wien", dessen Wahrzeichen das Riesenrad im Prater ist!

Ich möchte aber, die Anführungszeichen bei "Wien" wegnehmen.
Wie mache ich das?

greets
-=[la]=-
 
einfach statt
PHP:
echo <<<CORK
Die Hauptstadt von Östereich ist "$ort", dessen
$cider->cider das {$cider->eire[0]}
im {$cider->eire[1]} ist!
CORK;
dies schreiben
PHP:
echo <<<CORK
Die Hauptstadt von Östereich ist $ort, dessen
$cider->cider das {$cider->eire[0]}
im {$cider->eire[1]} ist!
CORK;
:-)

Grüße, Morph
 
Zuletzt bearbeitet:
Zurück