<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.types.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'language.types.intro.php',
    1 => 'Einf&uuml;hrung',
    2 => 'Einf&uuml;hrung',
  ),
  'up' => 
  array (
    0 => 'language.types.php',
    1 => 'Typen',
  ),
  'prev' => 
  array (
    0 => 'language.types.php',
    1 => 'Typen',
  ),
  'next' => 
  array (
    0 => 'language.types.type-system.php',
    1 => 'Typsystem',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'language/types.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.types.intro" class="sect1">
  <h2 class="title">Einführung</h2>

  <p class="para">
   Jeder einzelne Ausdruck in PHP hat in Abhängigkeit von seinem Wert einen
   der folgenden internen Typen:
   <ul class="itemizedlist">
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.null.php" class="type null">null</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.float.php" class="type float">float</a></span> (Gleitkommazahl)</span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.object.php" class="type object">object</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span></span></li>
    <li class="listitem"><span class="simpara"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span></span></li>
   </ul>
  </p>

  <p class="para">
   PHP ist eine dynamisch typisierte Sprache, was bedeutet, dass es
   standardmäßig nicht notwendig ist, einer Variablen einen Typ zuzuweisen,
   weil dieser zur Laufzeit bestimmt wird. Mit Hilfe von
   <a href="language.types.declarations.php" class="link">Typ-Deklarationen</a> ist es
   jedoch möglich, einige Aspekte der Sprache statisch zu typisieren.
   Die verschiedenen Typen, die vom PHP-Typsystem unterstützt werden, können
   auf der Seite <a href="language.types.type-system.php" class="link">Typsystem</a>
   gefunden werden.
  </p>

  <p class="para">
   Durch Typen wird die Art der Operationen, die mit ihnen durchgeführt werden
   können, eingeschränkt. Wenn jedoch ein Ausdruck oder eine Variable in einer
   Operation verwendet wird, die ihr Typ nicht unterstützt, wird PHP versuchen,
   den Wert mittels
   <a href="language.types.type-juggling.php" class="link">Typ-Umwandlung</a> (sog.
   Type Juggling, Typ-Jonglage) in einen Typ zu überführen, der die Operation
   unterstützt. Dieser Prozess hängt von dem Kontext ab, in dem der Wert
   verwendet wird. Weitere Informationen hierzu sind im Abschnitt über
   <a href="language.types.type-juggling.php" class="link">Typ-Umwandlung</a> zu
   finden.
  </p>

  <div class="tip"><strong class="tip">Tipp</strong>
   <p class="simpara">
    <a href="types.comparisons.php" class="link">Die Tabellen mit Vergleichen von PHP-Typen</a>
    können ebenfalls nützlich sein, da sie verschiedene Beispiele für den
    Vergleich zwischen Werten verschiedener Typen enthalten.
   </p>
  </div>

  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Mit einer <a href="language.types.type-juggling.php#language.types.typecasting" class="link">Typ-Zuweisung</a>
    kann man erzwingen, dass ein Ausdruck nach einem bestimmten Typ
    ausgewertet wird. Außerdem kann eine Variable mit Hilfe der Funktion
    <span class="function"><a href="function.settype.php" class="function">settype()</a></span> direkt auf einen bestimmten Typ gesetzt werden.
   </span>
  </p></blockquote>

  <p class="para">
   Um den Wert und den Typ eines
   <a href="language.expressions.php" class="link">Ausdrucks</a> zu ermitteln, kann
   die Funktion <span class="function"><a href="function.var-dump.php" class="function">var_dump()</a></span> verwendet werden. Den Typ eines
   <a href="language.expressions.php" class="link">Ausdrucks</a> erhält man mit der
   Funktion <span class="function"><a href="function.get-debug-type.php" class="function">get_debug_type()</a></span>. Um jedoch zu prüfen, ob ein
   Ausdruck von einem bestimmten Typ ist, sollten stattdessen die
   
   <code class="literal">is_<span class="replaceable">type</span></code>-Funktionen verwendet
   werden.

   <div class="example" id="example-1">
    <p><strong>Beispiel #1 Verschiedene Typen</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a_bool </span><span style="color: #007700">= </span><span style="color: #0000BB">true</span><span style="color: #007700">;   </span><span style="color: #FF8000">// Typ bool (Wahrheitswert)<br /></span><span style="color: #0000BB">$a_str  </span><span style="color: #007700">= </span><span style="color: #DD0000">"foo"</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Typ string (Zeichenkette)<br /></span><span style="color: #0000BB">$a_str2 </span><span style="color: #007700">= </span><span style="color: #DD0000">'foo'</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Typ string (Zeichenkette)<br /></span><span style="color: #0000BB">$an_int </span><span style="color: #007700">= </span><span style="color: #0000BB">12</span><span style="color: #007700">;     </span><span style="color: #FF8000">// Typ int (Ganzzahl)<br /><br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">get_debug_type</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">get_debug_type</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_str</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Falls es ein Integer ist, erhöhe ihn um vier<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">is_int</span><span style="color: #007700">(</span><span style="color: #0000BB">$an_int</span><span style="color: #007700">)) {<br />    </span><span style="color: #0000BB">$an_int </span><span style="color: #007700">+= </span><span style="color: #0000BB">4</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$an_int</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Falls $a_bool ein String ist, gib ihn aus<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">)) {<br />    echo </span><span style="color: #DD0000">"String: </span><span style="color: #0000BB">$a_bool</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
bool
string
int(16)
</pre></div>
    </div>
   </div>
  </p>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Die Funktion <span class="function"><a href="function.get-debug-type.php" class="function">get_debug_type()</a></span> steht erst seit PHP 8.0.0
    zur Verfügung. Davor kann stattdessen die Funktion
    <span class="function"><a href="function.gettype.php" class="function">gettype()</a></span> verwendet werden, die jedoch nicht die
    kanonischen Typnamen verwendet.
   </span>
  </p></blockquote>
 </div><?php manual_footer($setup); ?>