1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-26 00:02:18 +01:00
Files
archived-doc-de/reference/info/functions/version-compare.xml
2021-10-14 22:26:07 +02:00

193 lines
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4e6f0774f03131cbeeb8c21019a690bf97fd22b6 Maintainer: raphaelm Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 4e6f0774f03131cbeeb8c21019a690bf97fd22b6 Reviewer: samesch -->
<refentry xml:id="function.version-compare" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>version_compare</refname>
<refpurpose>Vergleicht zwei Versionsnummer-Zeichenketten im PHP-Versionsformat</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>bool</type></type><methodname>version_compare</methodname>
<methodparam><type>string</type><parameter>version1</parameter></methodparam>
<methodparam><type>string</type><parameter>version2</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>operator</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<function>version_compare</function> vergleicht zwei dem PHP-Versionsformat
angeglichene Versionsnummer-Zeichenketten.
</para>
<para>
Zuerst ersetzt die Funktion <literal>_</literal>, <literal>-</literal> und
<literal>+</literal> durch einen Punkt <literal>.</literal> in den
Versionsangaben und setzt vor und nach jeder Kette aus nicht-numerischen
Zeichen Punkte ein, sodass beispielsweise '4.3.2RC1' zu '4.3.2.RC.1' wird.
Anschließend werden von links nach rechts die Teile verglichen. Wenn ein
Teil spezielle Zeichen enthält, werden diese nach der folgenden Reihenfolge
behandelt: <literal>jede Zeichenkette, die nicht in dieser Liste
vorkommt</literal> &lt; <literal>dev</literal> &lt;
<literal>alpha</literal> = <literal>a</literal> &lt;
<literal>beta</literal> = <literal>b</literal> &lt; <literal>RC</literal> =
<literal>rc</literal> &lt; <literal>#</literal> &lt; <literal>pl</literal>
= <literal>p</literal>. Auf diese Weise können nicht nur Versionen
verschiedener Tiefe wie '4.1' und '4.1.2', sondern auch alle anderen
Versionen verglichen werden, die sich auf bestimmte Entwicklungsstadien von
PHP beziehen.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>version1</parameter></term>
<listitem>
<para>
Die erste Versionsnummer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>version2</parameter></term>
<listitem>
<para>
Die zweite Versionsnummer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>operator</parameter></term>
<listitem>
<para>
Ein optionaler Parameter; mögliche Operatoren sind:
<literal>&lt;</literal>, <literal>lt</literal>,
<literal>&lt;=</literal>, <literal>le</literal>,
<literal>&gt;</literal>, <literal>gt</literal>,
<literal>&gt;=</literal>, <literal>ge</literal>, <literal>==</literal>,
<literal>=</literal>, <literal>eq</literal>, <literal>!=</literal>,
<literal>&lt;&gt;</literal> und <literal>ne</literal>.
</para>
<para>
Dieser Parameter berücksicht die Groß- und Kleinschreibung. Die Werte
sollten alle kleingeschrieben werden.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Standardmäßig gibt <function>version_compare</function>
<literal>-1</literal> zurück, wenn die erste Version kleiner ist als die
zweite, <literal>0</literal>, wenn die Versionen gleich sind und
<literal>1</literal>, wenn die zweite Version kleiner ist.
</para>
<para>
Wenn der optionale Parameter <parameter>operator</parameter> übergeben
wurde, gibt die Funktion &true; oder &false; zurück, je nach dem, ob das
mit dem Operator definierte Verhältnis der Wahrheit entspricht oder nicht.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Das untenstehende Beispiel verwendet die Konstante
<constant>PHP_VERSION</constant>, die die Version des aktuell ausführenden
PHP-Interpreters enthält.
</para>
<para>
<example>
<title><function>version_compare</function>-Beispiele</title>
<programlisting role="php">
<![CDATA[
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'Ich bin mindestens PHP 7.0.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Ich bin mindestens PHP 5.3.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'Ich bin mindestens PHP 5.0.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'Ich bin noch PHP 4, meine Version: ' . PHP_VERSION . "\n";
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Die Konstante <constant>PHP_VERSION</constant> enthält die aktuelle
PHP-Version
</para>
</note>
<note>
<para>
Vorveröffentlichte Versionen wie 5.3.0-dev werden als kleiner erkannt als
ihre finalen Veröffentlichungen (wie 5.3.0).
</para>
</note>
<note>
<para>
Bei besonderen Versionszeichenketten wie <literal>alpha</literal> und
<literal>beta</literal> wird zwischen Groß-/Kleinschreibung unterschieden.
Versionszeichenketten aus beliebigen Quellen, die nicht den PHP-Standard
einhalten, müssen bei Bedarf mit <function>strtolower</function> in
Kleinschreibung umgewandelt werden, bevor
<function>version_compare</function> aufgerufen wird.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>phpversion</function></member>
<member><function>php_uname</function></member>
<member><function>function_exists</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->