Der Martin: Script teilen

Beitrag lesen

Hallo,

mir ist grad etwas seltsam, nachdem ich in einem Script in etwa folgenden Fehler erhalte.

ich finde eher dein Vorhaben etwas seltsam. ;-)

<?php

...
...
if ($abc == 'def') {
echo ("test 1, test2, test3");
...
...
} // end if
?>


>   
> Dieses Script wollte ich teilen ...  
  
Dann gehe ich davon aus, dass das Script in Wirklichkeit viel umfangreicher ist - denn bei einem solchen Dreizeiler ergibt eine Aufteilung ja nun wirklich keinen Sinn.  
  

> Hauptscript:  
> ~~~php

<?php  

> ...  
> ...  
> if ($abc == 'def') {  
> include ('teilscript1.php');  
> include ('teilscript2.php);  
> ?>

Teilscript1:

<?php

echo ("test 1, test2, test3");
...
?>


>   
> Teilscript2:  
> ~~~php

<?php  

>   
> ...  
> } // end if  
> ?>

Dass das so nicht geht, hast du ja schon festgestellt. Ja, es wird immer wieder veranschaulicht, include würde genau so arbeiten, als wäre der includierte Teil direkt in der übergeordneten Datei notiert. Allerdings darf ein include nicht über Klammerebenen hinweg gehen, so wie es bei dir der Fall ist. Du darfst also nicht einen Block im Hauptscript beginnen (öffnende Klammer), und in einem includierten Script beenden (schließende Klammer).

Jedes Script muss zumindest noch syntaktisch korrekt sein, auch wenn mal eine include-Datei fehlt. Und das geht eben nicht, wenn Blöcke über include-Grenzen gehen.

Setze die schließende Klammer ins Hauptscript, dann ist die Welt in Ordnung. Und übersichtlicher ist das IMO auch.

Wenn ich ins Hautsript die geschweifte Klammer einsetze, läuft das Hauptscript, aber ich erhalte eine Fehlereldung für das Teilscript2 wegen der geschweiften schließenden Klammer, die dann zuviel ist.

Natürlich. Dort muss sie weg, dort hat sich nichts verloren. Ein Block muss in der Scriptdatei geschlossen werden, in der er geöffnet wurde.

Ciao,
 Martin

--
In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
  (Dieter Nuhr, deutscher Kabarettist)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(