betz Mon Apr 22 09:31:06 2002 EDT
Modified files:
/phpdoc/de/language control-structures.xml
Log:
CDATA's added, small example correction
Index: phpdoc/de/language/control-structures.xml
diff -u phpdoc/de/language/control-structures.xml:1.27
phpdoc/de/language/control-structures.xml:1.28
--- phpdoc/de/language/control-structures.xml:1.27 Sat Apr 13 07:02:54 2002
+++ phpdoc/de/language/control-structures.xml Mon Apr 22 09:31:04 2002
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.27 $ -->
+<!-- $Revision: 1.28 $ -->
<!-- EN-Revision: 1.22 Maintainer: tzwenny Status: ready -->
<chapter id="control-structures">
<title>Kontroll-Strukturen</title>
@@ -25,8 +25,10 @@
C-Programmiersprache ist:
<informalexample>
<programlisting>
+<![CDATA[
if (ausdr)
Anweisung
+]]>
</programlisting>
</informalexample>
</para>
@@ -43,8 +45,10 @@
gr�sser ist als <replaceable>$b</replaceable>:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($a > $b)
print "a ist gr�sser als b";
+]]>
</programlisting>
</informalexample>
</para>
@@ -61,10 +65,12 @@
gespeichert:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($a > $b) {
print "a ist gr�sser als b";
$b = $a;
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -92,11 +98,13 @@
<computeroutput>a ist NICHT gr�sser als b</computeroutput>:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($a > $b) {
print "a ist gr�sser als b";
} else {
print "a ist NICHT gr�sser als b";
}
+]]>
</programlisting>
</informalexample>
Die <literal>else</literal>-Anweisung wird nur ausgef�hrt, wenn
@@ -126,6 +134,7 @@
<computeroutput>a ist kleiner als b</computeroutput> ausgeben:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($a > $b) {
print "a ist gr�sser als b";
} elseif ($a == $b) {
@@ -133,6 +142,7 @@
} else {
print "a ist kleiner als b";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -168,9 +178,11 @@
bzw. <literal>endswitch;</literal> ersetzt werden.
<informalexample>
<programlisting role="php">
-<?php if ($a == 5): ?>
+<![CDATA[
+<?php if ($a == 5): ?>
A ist gleich 5
-<?php endif; ?>
+<?php endif; ?>
+]]>
</programlisting>
</informalexample>
</para>
@@ -186,6 +198,7 @@
und <literal>else</literal> im alternativen Format:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($a == 5):
print "a ist gleich 5";
print "...";
@@ -195,6 +208,7 @@
else:
print "a ist weder 5 noch 6";
endif;
+]]>
</programlisting>
</informalexample>
</para>
@@ -213,7 +227,9 @@
Grundform einer <literal>while</literal>-Anweisung lautet:
<informalexample>
<programlisting>
+<![CDATA[
while (ausdr) Anweisung
+]]>
</programlisting>
</informalexample>
</para>
@@ -238,7 +254,9 @@
gebraucht:
<informalexample>
<programlisting>
+<![CDATA[
while (ausdr): Anweisung ... endwhile;
+]]>
</programlisting>
</informalexample>
</para>
@@ -247,10 +265,11 @@
1 bis 10 aus:
<informalexample>
<programlisting>
+<![CDATA[
/* Beispiel 1 */
$i = 1;
-while ($i <= 10) {
+while ($i <= 10) {
print $i++; /* es wird erst $i ausgegeben,
bevor der Wert erh�ht wird
(Post-Inkrement) */
@@ -259,10 +278,11 @@
/* Beispiel 2 */
$i = 1;
-while ($i <= 10):
+while ($i <= 10):
print $i;
$i++;
endwhile;
+]]>
</programlisting>
</informalexample>
</para>
@@ -285,10 +305,12 @@
Es gibt nur eine Syntax f�r <literal>do..while</literal>-Schleifen:
<informalexample>
<programlisting role="php">
+<![CDATA[
$i = 0;
do {
print $i;
} while ($i>0);
+]]>
</programlisting>
</informalexample>
</para>
@@ -305,13 +327,14 @@
Anweisung zu benutzen. Der folgende Programm-Ausschnitt zeigt dies:
<informalexample>
<programlisting role="php">
+<![CDATA[
do {
- if ($i < 5) {
+ if ($i < 5) {
print "i ist nicht gross genug";
break;
}
$i *= $factor;
- if ($i < $minimum_limit) {
+ if ($i < $minimum_limit) {
break;
}
print "i ist ok";
@@ -319,6 +342,7 @@
...bearbeite i...
} while(0);
+]]>
</programlisting>
</informalexample>
</para>
@@ -337,7 +361,9 @@
einer <literal>for</literal>-Schleife sieht so aus:
<informalexample>
<programlisting>
+<![CDATA[
for (ausdr1; ausdr2; ausdr3) Anweisung
+]]>
</programlisting>
</informalexample>
</para>
@@ -370,16 +396,17 @@
10 aus:
<informalexample>
<programlisting role="php">
+<![CDATA[
/* Beispiel 1 */
-for ($i = 1; $i <= 10; $i++) {
+for ($i = 1; $i <= 10; $i++) {
print $i;
}
/* Beispiel 2 */
for ($i = 1;;$i++) {
- if ($i > 10) {
+ if ($i > 10) {
break;
}
print $i;
@@ -389,7 +416,7 @@
$i = 1;
for (;;) {
- if ($i > 10) {
+ if ($i > 10) {
break;
}
print $i;
@@ -398,7 +425,8 @@
/* Beispiel 4 */
-for ($i = 1; $i <= 10; print $i, $i++) ;
+for ($i = 1; $i <= 10; print $i, $i++) ;
+]]>
</programlisting>
</informalexample>
</para>
@@ -413,7 +441,9 @@
alternative "Doppelpunkt-Syntax".
<informalexample>
<programlisting>
+<![CDATA[
for (ausdr1; ausdr2; ausdr3): Anweisung; ...; endfor;
+]]>
</programlisting>
</informalexample>
</para>
@@ -440,8 +470,10 @@
Erweiterung der ersten Syntax:
<informalexample>
<programlisting>
+<![CDATA[
foreach(array_expression as $value) Anweisung
foreach(array_expression as $key => $value) Anweisung
+]]>
</programlisting>
</informalexample>
</para>
@@ -482,27 +514,31 @@
identisch sind:
<informalexample>
<programlisting role="php">
- reset ($arr);
+<![CDATA[
+reset ($arr);
while (list(, $value) = each ($arr)) {
- echo "Wert: $value<br>\n";
+ echo "Wert: $value<br>\n";
}
foreach ($arr as $value) {
- echo "Wert: $value<br>\n";
+ echo "Wert: $value<br>\n";
}
+]]>
</programlisting>
</informalexample>
Auch hier funktioniert alles gleich:
<informalexample>
<programlisting role="php">
+<![CDATA[
reset ($arr);
while (list($key, $value) = each ($arr)) {
- echo "Schl�ssel: $key; Wert: $value<br>\n";
+ echo "Schl�ssel: $key; Wert: $value<br>\n";
}
foreach ($arr as $key => $value) {
- echo "Schl�ssel: $key; Wert: $value<br>\n";
+ echo "Schl�ssel: $key; Wert: $value<br>\n";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -510,6 +546,7 @@
Noch einige Beispiele, die die Anwendung verdeutlichen:
<informalexample>
<programlisting role="php">
+<![CDATA[
/* foreach Beispiel 1: Nur der Wert */
$a = array (1, 2, 3, 17);
@@ -525,7 +562,7 @@
$i = 0; /* nur f�r Anschauungs-Zweck */
foreach($a as $v) {
- print "\$a[$i] => $k.\n";
+ print "\$a[$i] => $v.\n";
$i++;
}
@@ -541,6 +578,7 @@
foreach($a as $k => $v) {
print "\$a[$k] => $v.\n";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -562,27 +600,29 @@
<para>
<informalexample>
<programlisting role="php">
+<![CDATA[
$arr = array ('eins', 'zwei', 'drei', 'stop', 'vier');
while (list ( , $val) = each ($arr)) {
if ($val == 'stop') {
break; /* Man kann hier auch 'break 1;' schreiben. */
}
- echo "$val<br>\n";
+ echo "$val<br>\n";
/* Benutzung des optionalen Argumentes. */
$i = 0;
while (++$i) {
switch ($i) {
case 5:
- echo "Bei 5<br>\n";
+ echo "Bei 5<br>\n";
break 1; /* Beendet nur switch. */
case 10:
- echo "Bei 10; quitting<br>\n";
+ echo "Bei 10; quitting<br>\n";
break 2; /* Beendet switch und while. */
default:
break;
}
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -603,6 +643,7 @@
<para>
<informalexample>
<programlisting role="php">
+<![CDATA[
while (list ($key, $value) = each ($arr)) {
if ($key % 2) { // �berspringe ungerade Werte
continue;
@@ -611,18 +652,19 @@
}
$i = 0;
-while ($i++ < 5) {
- echo "Aussen<br>\n";
+while ($i++ < 5) {
+ echo "Aussen<br>\n";
while (1) {
- echo " Mitte<br>\n";
+ echo " Mitte<br>\n";
while (1) {
- echo " Innen<br>\n";
+ echo " Innen<br>\n";
continue 3;
}
- echo "Das wird nie ausgegeben.<br>\n";
+ echo "Das wird nie ausgegeben.<br>\n";
}
- echo "Dies auch nicht.<br>\n";
+ echo "Dies auch nicht.<br>\n";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -644,6 +686,7 @@
das andere eine <literal>switch</literal>-Anweisung:
<informalexample>
<programlisting role="php">
+<![CDATA[
if ($i == 0) {
print "i ist gleich 0";
}
@@ -665,6 +708,7 @@
print "i ist gleich 2";
break;
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -684,6 +728,7 @@
Z.B.:
<informalexample>
<programlisting role="php">
+<![CDATA[
switch ($i) {
case 0:
print "i ist gleich 0";
@@ -692,6 +737,7 @@
case 2:
print "i ist gleich 2";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -718,6 +764,7 @@
die Kontrolle einfach an den n�chsten case-Teil �bergeben.
<informalexample>
<programlisting role="php">
+<![CDATA[
switch ($i) {
case 0:
case 1:
@@ -727,6 +774,7 @@
case 3:
print "i ist gleich 3";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -736,6 +784,7 @@
erfasst wurde, wie z.B.:
<informalexample>
<programlisting role="php">
+<![CDATA[
switch ($i) {
case 0:
print "i ist gleich 0";
@@ -749,6 +798,7 @@
default:
print "i ist weder 0, 1 noch 2";
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -766,6 +816,7 @@
f�r Kontroll-Strukturen</link> .
<informalexample>
<programlisting role="php">
+<![CDATA[
switch ($i):
case 0:
print "i ist gleich 0";
@@ -779,6 +830,7 @@
default:
print "i ist weder 0, 1 noch 2";
endswitch;
+]]>
</programlisting>
</informalexample>
</para>
@@ -839,7 +891,9 @@
<function>include</function> benutzen.
<informalexample>
<programlisting role="php">
+<![CDATA[
require ('header.inc');
+]]>
</programlisting>
</informalexample>
</para>
@@ -863,6 +917,7 @@
Ergebnisse in das lokale Skript eingebunden werden.
<informalexample>
<programlisting role="php">
+<![CDATA[
/* Dieses Beispiel geht davon aus, dass ein beliebiger Server zum
* Parsen von *.php-Dateien konfiguriert ist. Also meint 'funkt' hier,
* dass die Variablen $vareins und $varzwei innerhalb der angeforderten
@@ -872,16 +927,17 @@
require ("http://someserver/file.txt?vareins=1&varzwei=2");
/* Funkt. nicht; schaut nach einer lokalen Datei namens
-/* 'file.php?varone=1&vartwo=2' */
-require ("file.php?vareins=1&varzwei=2");
+/* 'file.php?varone=1&vartwo=2' */
+require ("file.php?vareins=1&varzwei=2");
/* Funkt. */
-require ("http://someserver/file.php?vareins=1&varzwei=2");
+require ("http://someserver/file.php?vareins=1&varzwei=2");
$vareins = 1;
$varzwei = 2;
require ("file.txt"); /* Funkt. */
require ("file.php"); /* Funkt. */
+]]>
</programlisting>
</informalexample>
</para>
@@ -931,10 +987,12 @@
verwenden, um eine Anzahl unterschiedlicher Dateien einzubinden.
<informalexample>
<programlisting role="php">
+<![CDATA[
$files = array ('first.inc', 'second.inc', 'third.inc');
for ($i = 0; $i < count($files); $i++) {
include $files[$i];
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -955,6 +1013,7 @@
Anweisungsblock setzen.
<informalexample>
<programlisting role="php">
+<![CDATA[
/* Das ist falsch und f�hrt nicht zum gew�nschten Ergebnis. */
if ($Bedingung)
@@ -969,6 +1028,7 @@
} else {
include($anderedatei);
}
+]]>
</programlisting>
</informalexample>
</para>
@@ -996,22 +1056,26 @@
<filename>test.inc</filename> im gleichen Verzeichnis wie die
Hauptdatei stehen muss:
<programlisting role="php">
-<?php
-echo "Vor dem Return <br>\n";
+<![CDATA[
+<?php
+echo "Vor dem Return <br>\n";
if (1) {
return 27;
}
-echo "Nach dem Return <br>\n";
-?>
+echo "Nach dem Return <br>\n";
+?>
+]]>
</programlisting>
</para>
<para>
Die Datei <filename>main.html</filename> enth�lt folgendes:
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
$retval = include ('test.inc');
-echo "Datei gibt zur�ck: '$retval'<br>\n";
-?>
+echo "Datei gibt zur�ck: '$retval'<br>\n";
+?>
+]]>
</programlisting>
</para>
<para>
@@ -1028,10 +1092,12 @@
Die Datei <filename>main.html</filename> soll nun folgendes
enthalten:
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
include ('test.inc');
-echo "Zur�ck in main.html<br>\n";
-?>
+echo "Zur�ck in main.html<br>\n";
+?>
+]]>
</programlisting>
</para>
<para>
@@ -1084,25 +1150,27 @@
Ergebnisse in das lokale Skript eingebunden werden.
<informalexample>
<programlisting role="php">
+<![CDATA[
/* Dieses Beispiel geht davon aus, dass ein beliebiger Server zum
* Parsen von *.php-Dateien konfiguriert ist. Also meint 'funkt' hier,
* dass die Variablen $vareins und $varzwei innerhalb der angeforderten
* Datei vorhanden sind. */
/* Funkt. nicht; file.txt wird vom besagten Server nicht geparst. */
-include ("http://someserver/file.txt?vareins=1&varzwei=2");
+include ("http://someserver/file.txt?vareins=1&varzwei=2");
/* Funkt. nicht; schaut nach einer lokalen Datei namens
-/* 'file.php?varone=1&vartwo=2' */
-include ("file.php?vareins=1&varzwei=2");
+/* 'file.php?varone=1&vartwo=2' */
+include ("file.php?vareins=1&varzwei=2");
/* Funkt. */
-include ("http://someserver/file.php?vareins=1&varzwei=2");
+include ("http://someserver/file.php?vareins=1&varzwei=2");
$vareins = 1;
$varzwei = 2;
include ("file.txt"); /* Funkt. */
include ("file.php"); /* Funkt. */
+]]>
</programlisting>
</informalexample>
</para>
@@ -1136,19 +1204,22 @@
<example>
<title>utils.inc</title>
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
define(PHPVERSION, floor(phpversion()));
echo "GLOBALE SIND GUT\n";
function guterTee() {
return "Oolong-Tee schmeckt gut!";
}
-?>
+?>
+]]>
</programlisting>
</example>
<example>
<title>foolib.inc</title>
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
require ("utils.inc");
function zeigeVar($var) {
if (PHPVERSION == 4) {
@@ -1159,7 +1230,8 @@
}
// es folgen weiter Funktionen ...
-?>
+?>
+]]>
</programlisting>
</example>
Nun schreiben Sie ein Skript
@@ -1167,7 +1239,8 @@
<example>
<title>cause_error_require.php</title>
<programlisting role="php">
-<?php
+<![CDATA[
+<?php
require("foolib.inc");
/* das Folgende erzeugt einen Fehler */
require("utils.inc");
@@ -1177,17 +1250,21 @@
echo "Aufruf von guterTee: ".guterTee()."\n";
echo "Ausgabe foo: \n";
showVar($foo);
-?>
+?>
+]]>
</programlisting>
</example>
Wenn Sie letzteres starten, wird folgende Ausgabe erzeugt (gilt f�r
PHP 4.01pl2):
<informalexample>
<programlisting>
+<![CDATA[
GLOBALE SIND GUT
GLOBALE SIND GUT
Fatal error: Cannot redeclare causeerror() in utils.inc on line 5
+
+]]>
</programlisting>
</informalexample>
Durch Umschreiben von <literal>foolib.inc</literal> und
@@ -1198,26 +1275,31 @@
<example>
<title>foolib.inc (fixed)</title>
<programlisting role="php">
+<![CDATA[
...
require_once("utils.inc");
function showVar($var) {
...
+]]>
</programlisting>
</example>
<example>
<title>avoid_error_require_once.php</title>
<programlisting role="php">
+<![CDATA[
...
require_once("foolib.inc");
require_once("utils.inc");
$foo = array("1",array("complex","quaternion"));
...
+]]>
</programlisting>
</example>
Beim nachfolgenden Aufruf wird folgende Ausgabe erzeugt (bei PHP
4.0.1pl2):
<informalexample>
<programlisting>
+<![CDATA[
GLOBALE SIND GUT
dies erfordert utils.inc, das auch
in foolib.inc erforderlich ist
@@ -1225,14 +1307,15 @@
Ausgabe foo:
Array
(
- [0] => 1
- [1] => Array
+ [0] => 1
+ [1] => Array
(
- [0] => complex
- [1] => quaternion
+ [0] => complex
+ [1] => quaternion
)
)
+]]>
</programlisting>
</informalexample>
</para>