<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/about.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'about.prototypes.php',
    1 => 'Wie man eine Funktionsdefinition (Prototyp) liest',
    2 => 'Wie man eine Funktionsdefinition (Prototyp) liest',
  ),
  'up' => 
  array (
    0 => 'about.php',
    1 => '&Uuml;ber das Handbuch',
  ),
  'prev' => 
  array (
    0 => 'about.notes.php',
    1 => '&Uuml;ber die Kommentare (User Notes)',
  ),
  'next' => 
  array (
    0 => 'about.phpversions.php',
    1 => 'In diesem Handbuch beschriebene PHP-Versionen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'appendices/about.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="about.prototypes" class="sect1">
  <h2 class="title">Wie man eine Funktionsdefinition (Prototyp) liest</h2>
  <p class="para">
   Jede Funktion im Handbuch ist für schnelles Nachschlagen dokumentiert. Zu
   wissen, wie man diesen Text liest und versteht, wird es viel einfacher
   machen, PHP zu lernen. Statt sich auf Beispiele und Auschneiden und
   Einfügen zu verlassen sollte jeder wissen, wie man eine Funktionsdefinition
   (Prototyp) liest. Lassen Sie uns anfangen:
  </p>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <strong>
    Voraussetzung: Grundlegendes Verständnis der
    <a href="language.types.php" class="link">Typen</a>
   </strong><br />
   <p class="para">
    Obwohl PHP eine schwach typisierte Sprache ist, ist es wichtig, ein
    grundlegendes Verständnis von <a href="language.types.php" class="link">Typen</a>
    zu besitzen, da sie eine wichtige Bedeutung haben.
   </p>
  </p></blockquote>
  <p class="para">
   Funktionsdefinitionen sagen uns, welcher Typ von Werten
   <a href="functions.returning-values.php" class="link">zurückgegeben wird</a>.
   Lassen Sie uns die Definition von <span class="function"><a href="function.strlen.php" class="function">strlen()</a></span> als unser
   erstes Beispiel nehmen:
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Ermitteln der String-Länge

Beschreibung
strlen ( string $string ) : int

Gibt die Länge der übergebenen Zeichenkette zurück.
</pre></div>
   </div>
  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>Erklärung einer Funktionsdefinition</strong></caption>
    
     <thead>
      <tr>
       <th>Teil</th>
       <th>Beschreibung</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>
        strlen
       </td>
       <td>
        Der Name der Funktion.
       </td>
      </tr>

      <tr>
       <td>
        (PHP 4, PHP 5, PHP 7)
       </td>
       <td>
        strlen() gab es in allen Versionen von PHP 4, 5 und PHP 7
       </td>
      </tr>

      <tr>
       <td>
        ( string $string )
       </td>
       <td>
        Der erste (und in diesem Fall einzige) Parameter (Argument) dieser
        Funktion trägt den Namen <code class="parameter">string</code> und ist ein
        <span class="type"><a href="language.types.string.php" class="type String">String</a></span>.
       </td>
      </tr>

      <tr>
       <td>
        int
       </td>
       <td>
        Type des Wertes, den diese Funktion zurückgibt, welche hier ein
        <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> ist (d. h. die Länge einer Zeichenkette in Zahlen
        gemessen).
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   Wir könnten die oben angegebene Funktionsdefinition auf eine allgemeine
   Art umschreiben:
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
      Funktionsname    ( Parametertyp   Parametername ) : Rückgabetyp
</pre></div>
   </div>
  </p>
  <p class="para">
   Viele Funktionen akzeptieren mehrere Parameter, z. B.
   <span class="function"><a href="function.in-array.php" class="function">in_array()</a></span>. Ihr Prototyp sieht wie folgt aus:
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool
</pre></div>
   </div>
  </p>
  <p class="para">
   Was bedeutet das? in_array() liefert einen

   <a href="language.types.boolean.php" class="link">boolean</a>-Wert zurück, <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
   im Erfolgsfall (falls <code class="parameter">needle</code> in
   <code class="parameter">haystack</code> gefunden wurde). Bei einem Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
   Der erste Parameter heißt <code class="parameter">needle</code> und kann viele verschiedene
   <a href="language.types.php" class="link">Typen</a> annehmen, weshalb wir ihn
   &quot;<em>mixed</em>&quot; nennen. Diese mixed
   <code class="parameter">needle</code> (wonach wir suchen) kann entweder ein
   skalarer Wert sein (string, integer oder
   <a href="language.types.float.php" class="link">float</a>) oder ein
   <a href="language.types.array.php" class="link">array</a>.
   <code class="parameter">haystack</code> (das Array das wir durchsuchen) ist der
   zweite Parameter. Der dritte, <em>optionale</em> Parameter wird
   <code class="parameter">strict</code> genannt. Alle optionalen Parameter haben
   Standardwerte; Wenn der Standardwert unbekannt ist, wird er als
   <code class="literal">?</code> angezeigt. Das Handbuch erklärt, dass der Parameter
   <code class="parameter">strict</code> den Standardwert <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> hat. Schauen Sie auf
   die Handbuchseite der jeweiligen Funktion, um nachzulesen, wie sie
   funktionieren.
  </p>
  <p class="para">
   Zusätzlich erlaubt das &amp; (Kaufmanns-Und) Symbol, das einem
   Funktionsparameter vorangestellt wird, den Parameter als
   <a href="language.references.pass.php" class="link">Referenz</a> zu übergeben, wie
   hier zu sehen:
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
       preg_match ( string $pattern , string $subject , array &amp;$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false
</pre></div>
   </div>
  </p>
  <p class="para">
   Diesem Beispiel kann entnommen werden, dass der dritte optionale Parameter
   <code class="parameter">&amp;$matches</code> als Referenz übergeben wird.
  </p>
  <p class="para">
   Es gibt auch Funktionen mit komplexeren PHP Versionsangaben. Nehmen wir
   <span class="function"><a href="function.html-entity-decode.php" class="function">html_entity_decode()</a></span> als Beispiel:
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
(PHP 4 &gt;= 4.3.0, PHP 5, PHP 7)
</pre></div>
   </div>
  </p>
  <p class="para">
   Das heißt, die Funktion ist nur in PHP Versionen ab PHP 4.3.0 verfügbar.
  </p>
 </div><?php manual_footer($setup); ?>