1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-23 23:02:13 +01:00
Files
archived-doc-de/language/types.xml
Martin Samesch e978f2d900 Sync with EN
2025-04-23 13:42:49 +02:00

168 lines
5.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e587d0655e426f97b3fcb431453da5030e743b23 Maintainer: hholzgra Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 9fe810352095922a68ce2807745a9bc35c0afe1f Reviewer: samesch -->
<!-- CREDITS: samesch, betz -->
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>Typen</title>
<sect1 xml:id="language.types.intro">
<title>Einführung</title>
<para>
Jeder einzelne Ausdruck in PHP hat in Abhängigkeit von seinem Wert einen
der folgenden internen Typen:
<itemizedlist>
<listitem><simpara><type>null</type></simpara></listitem>
<listitem><simpara><type>bool</type></simpara></listitem>
<listitem><simpara><type>int</type></simpara></listitem>
<listitem><simpara><type>float</type> (Gleitkommazahl)</simpara></listitem>
<listitem><simpara><type>string</type></simpara></listitem>
<listitem><simpara><type>array</type></simpara></listitem>
<listitem><simpara><type>object</type></simpara></listitem>
<listitem><simpara><type>callable</type></simpara></listitem>
<listitem><simpara><type>resource</type></simpara></listitem>
</itemizedlist>
</para>
<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
<link linkend="language.types.declarations">Typ-Deklarationen</link> 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 <link linkend="language.types.type-system">Typsystem</link>
gefunden werden.
</para>
<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
<link linkend="language.types.type-juggling">Typ-Umwandlung</link> (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
<link linkend="language.types.type-juggling">Typ-Umwandlung</link> zu
finden.
</para>
<tip>
<simpara>
<link linkend="types.comparisons">Die Tabellen mit Vergleichen von PHP-Typen</link>
können ebenfalls nützlich sein, da sie verschiedene Beispiele für den
Vergleich zwischen Werten verschiedener Typen enthalten.
</simpara>
</tip>
<note>
<simpara>
Mit einer <link linkend="language.types.typecasting">Typ-Zuweisung</link>
kann man erzwingen, dass ein Ausdruck nach einem bestimmten Typ
ausgewertet wird. Außerdem kann eine Variable mit Hilfe der Funktion
<function>settype</function> direkt auf einen bestimmten Typ gesetzt werden.
</simpara>
</note>
<para>
Um den Wert und den Typ eines
<link linkend="language.expressions">Ausdrucks</link> zu ermitteln, kann
die Funktion <function>var_dump</function> verwendet werden. Den Typ eines
<link linkend="language.expressions">Ausdrucks</link> erhält man mit der
Funktion <function>get_debug_type</function>. Um jedoch zu prüfen, ob ein
Ausdruck von einem bestimmten Typ ist, sollten stattdessen die
<!-- TODO When PhD support is there: <function>is_<replaceable>type</replaceable></function> -->
<literal>is_<replaceable>type</replaceable></literal>-Funktionen verwendet
werden.
<example>
<title>Verschiedene Typen</title>
<programlisting role="php">
<![CDATA[
<?php
$a_bool = true; // Typ bool (Wahrheitswert)
$a_str = "foo"; // Typ string (Zeichenkette)
$a_str2 = 'foo'; // Typ string (Zeichenkette)
$an_int = 12; // Typ int (Ganzzahl)
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Falls es ein Integer ist, erhöhe ihn um vier
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Falls $a_bool ein String ist, gib ihn aus
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
]]>
</programlisting>
&example.outputs.8;
<screen>
<![CDATA[
bool
string
int(16)
]]>
</screen>
</example>
</para>
<note>
<simpara>
Die Funktion <function>get_debug_type</function> steht erst seit PHP 8.0.0
zur Verfügung. Davor kann stattdessen die Funktion
<function>gettype</function> verwendet werden, die jedoch nicht die
kanonischen Typnamen verwendet.
</simpara>
</note>
</sect1>
&language.types.type-system;
&language.types.null;
&language.types.boolean;
&language.types.integer;
&language.types.float;
&language.types.string;
&language.types.numeric-strings;
&language.types.array;
&language.types.object;
&language.types.enumerations;
&language.types.resource;
&language.types.callable;
&language.types.mixed;
&language.types.void;
&language.types.never;
&language.types.relative-class-types;
&language.types.singleton;
&language.types.iterable;
&language.types.declarations;
&language.types.type-juggling;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->