mirror of
https://github.com/php/doc-de.git
synced 2026-03-23 23:02:13 +01:00
168 lines
5.5 KiB
XML
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
|
|
-->
|