<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.print.php',
    1 => 'print',
    2 => 'Ausgabe eines Strings',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'String-Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.parse-str.php',
    1 => 'parse_str',
  ),
  'next' => 
  array (
    0 => 'function.printf.php',
    1 => 'printf',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/strings/functions/print.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.print" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">print</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">print</span> &mdash; <span class="dc-title">Ausgabe eines Strings</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.print-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>print</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$expression</code></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="para rdfs-comment">
   Gibt <code class="parameter">expression</code> aus.
  </p>
  <p class="para">
   <code class="literal">print</code> ist keine Funktion, sondern ein Sprachkonstrukt.
   Sein Argument ist der Ausdruck, der auf das Schlüsselwort
   <code class="literal">print</code> folgt, und wird nicht durch Klammern abgegrenzt.
  </p>
  <p class="para">
   Der Hauptunterschied zu <code class="literal">echo</code> besteht darin, dass
   <code class="literal">print</code> nur ein einziges Argument entgegennimmt, und
   immer <code class="literal">1</code> zurückgibt.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.print-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">expression</code></dt>
     <dd>
      <p class="para">
       Der Ausdruck, der ausgegeben werden soll. Nicht-String-Werte werden in
       Strings umgewandelt, auch wenn  <a href="language.types.declarations.php#language.types.declarations.strict" class="link">die Direktive
       <code class="literal">strict_types</code></a> aktiviert ist.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.print-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt immer <code class="literal">1</code> zurück.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.print-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <code class="literal">print</code>-Beispiele</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"print benötigt keine Klammern."</span><span style="color: #007700">;<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Es wird kein Zeilenumbruch oder Leerzeichen eingefügt; das Folgende gibt<br />// "HalloWelt" in einer Zeile aus<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"Hallo"</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Welt"</span><span style="color: #007700">;<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />print </span><span style="color: #DD0000">"Dieser String umfasst<br />mehrere Zeilen. Die Zeilenumbrüche<br />werden mit ausgegeben."</span><span style="color: #007700">;<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />print </span><span style="color: #DD0000">"Dieser String umfasst\nmehrere Zeilen. Die Zeilenumbrüche\nwerden mit ausgegeben."</span><span style="color: #007700">;<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Das Argument kann ein beliebiger Ausdruck sein, der einen String erzeugt<br /></span><span style="color: #0000BB">$foo </span><span style="color: #007700">= </span><span style="color: #DD0000">"ein Beispiel"</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"foo ist </span><span style="color: #0000BB">$foo</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// foo ist ein Beispiel<br /></span><span style="color: #007700">print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$fruechte </span><span style="color: #007700">= [</span><span style="color: #DD0000">"Zitrone"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Orange"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Banane"</span><span style="color: #007700">];<br />print </span><span style="color: #0000BB">implode</span><span style="color: #007700">(</span><span style="color: #DD0000">" und "</span><span style="color: #007700">, </span><span style="color: #0000BB">$fruechte</span><span style="color: #007700">); </span><span style="color: #FF8000">// Zitrone und Orange und Banane<br /></span><span style="color: #007700">print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Nicht-String-Ausdrücke werden in String umgewandelt, auch wenn<br />// declare(strict_types=1) verwendet wird<br /></span><span style="color: #007700">print </span><span style="color: #0000BB">6 </span><span style="color: #007700">* </span><span style="color: #0000BB">7</span><span style="color: #007700">; </span><span style="color: #FF8000">// 42<br /></span><span style="color: #007700">print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Da print einen Rückgabewert hat, kann es in Ausdrücken verwendet werden<br />// Das Folgende gibt "Hallo Welt" aus<br /></span><span style="color: #007700">if ( print </span><span style="color: #DD0000">"Hallo" </span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">" Welt"</span><span style="color: #007700">;<br />}<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Das Folgende gibt "wahr" aus<br /></span><span style="color: #007700">( </span><span style="color: #0000BB">1 </span><span style="color: #007700">=== </span><span style="color: #0000BB">1 </span><span style="color: #007700">) ? print </span><span style="color: #DD0000">'wahr' </span><span style="color: #007700">: print </span><span style="color: #DD0000">'falsch'</span><span style="color: #007700">;<br />print </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.print-notes">
  <h3 class="title">Anmerkungen</h3>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <strong>Die Verwendung mit Klammern</strong><br />
   <p class="para">
    Wenn das Argument in Klammern an <code class="literal">print</code> übergeben wird,
    löst das keinen Syntaxfehler aus und erzeugt eine Syntax, die wie ein
    normaler Funktionsaufruf aussieht. Dies kann jedoch irreführend sein, denn
    die Klammern sind tatsächlich Teil des auszugebenden Ausdrucks und nicht
    Teil der <code class="literal">print</code>-Syntax selbst.

    <div class="informalexample">
     <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"Hallo"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// gibt "Hallo" aus<br /><br /></span><span style="color: #007700">print(</span><span style="color: #DD0000">"Hallo"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// gibt auch "Hallo" aus, weil ("Hallo") ein gültiger Ausdruck ist<br /><br /></span><span style="color: #007700">print(</span><span style="color: #0000BB">1 </span><span style="color: #007700">+ </span><span style="color: #0000BB">2</span><span style="color: #007700">) * </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// gibt "9" aus; die Klammern bewirken, dass zuerst 1+2 ausgewertet wird, dann 3*3<br />// Die print-Anweisung sieht den gesamten Ausdruck als ein Argument<br /><br /></span><span style="color: #007700">if ( print(</span><span style="color: #DD0000">"Hallo"</span><span style="color: #007700">) &amp;&amp; </span><span style="color: #0000BB">false </span><span style="color: #007700">) {<br />    print </span><span style="color: #DD0000">" - inside if"</span><span style="color: #007700">;<br />}<br />else {<br />    print </span><span style="color: #DD0000">" - inside else"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #FF8000">// gibt " - inside if" aus<br />// Der Ausdruck ("Hallo") &amp;&amp; false wird zuerst ausgewertet und ergibt false<br />// Dies wird in die leere Zeichenkette "" umgewandelt und gedruckt<br />// Das print-Konstrukt gibt dann 1 zurück, also wird der Code im if-Block ausgeführt<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    Wenn <code class="literal">print</code> in einem größeren Ausdruck verwendet wird,
    könnte es nötig sein, sowohl das Schlüsselwort als auch sein Argument in
    Klammern zu setzen, um das gewünschte Ergebnis zu erhalten:

    <div class="informalexample">
     <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if ( (print </span><span style="color: #DD0000">"Hallo"</span><span style="color: #007700">) &amp;&amp; </span><span style="color: #0000BB">false </span><span style="color: #007700">) {<br />    print </span><span style="color: #DD0000">" - inside if"</span><span style="color: #007700">;<br />}<br />else {<br />    print </span><span style="color: #DD0000">" - inside else"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #FF8000">// gibt "Hallo - inside else" aus<br />// Im Gegensatz zum vorherigen Beispiel wird der Ausdruck (print "Hallo")<br />// zuerst ausgewertet<br />// Nach der Ausgabe von "Hallo" gibt print 1 zurück<br />// Da 1 &amp;&amp; false falsch ist, wird der Code im else-Block ausgeführt<br /><br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"Hallo " </span><span style="color: #007700">&amp;&amp; print </span><span style="color: #DD0000">"Welt"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// gibt "Welt1" aus; print "Welt" wird zuerst ausgewertet,<br />// dann wird der Ausdruck "Hallo " &amp;&amp; 1 an den linken print übergeben<br /><br /></span><span style="color: #007700">(print </span><span style="color: #DD0000">"Hallo "</span><span style="color: #007700">) &amp;&amp; (print </span><span style="color: #DD0000">"Welt"</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// gibt "Hallo Welt" aus; die Klammern erzwingen, dass die print-Ausdrücke<br />// vor dem &amp;&amp; ausgewertet werden.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: <span class="simpara">Da dies ein Sprachkonstrukt
und keine Funktion ist, können Sie dieses nicht mit
<a href="functions.variable-functions.php" class="link">Variablenfunktionen</a> oder
<a href="functions.arguments.php#functions.named-arguments" class="link">benannten Parametern</a> verwenden.
</span></p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.print-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.echo.php" class="function" rel="rdfs-seeAlso">echo</a> - Gibt einen oder mehrere Strings aus</span></li>
    <li><span class="function"><a href="function.printf.php" class="function" rel="rdfs-seeAlso">printf()</a> - Liefert einen formatierten String</span></li>
    <li><span class="function"><a href="function.flush.php" class="function" rel="rdfs-seeAlso">flush()</a> - Leert (sendet) den System-Ausgabepuffer</span></li>
    <li><a href="language.types.string.php" class="link">Möglichkeiten literale Strings anzugeben</a></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>