mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
192 lines
7.3 KiB
XML
192 lines
7.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 4e6f0774f03131cbeeb8c21019a690bf97fd22b6 Maintainer: tmn Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xml:id="function.version-compare" xmlns="http://docbook.org/ns/docbook">
|
||
<refnamediv>
|
||
<refname>version_compare</refname>
|
||
<refpurpose>
|
||
Сравнивает две «стандартизованные» строки с номером версии PHP
|
||
</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> сравнивает две "PHP-стандартизованные"
|
||
строки с номерами версий.
|
||
</para>
|
||
<para>
|
||
Функция сначала заменяет подчёркивание <literal>_</literal>, дефис <literal>-</literal>
|
||
и знак плюса <literal>+</literal> на точку <literal>.</literal> в строках версий, а
|
||
также добавляет точки <literal>.</literal> до и после каждого символа,
|
||
не являющегося числом. Например, '4.3.2RC1' преобразуется в '4.3.2.RC.1'. После этого
|
||
сравнивает части строк слева направо. Если часть строки содержит специальные
|
||
символы версий, они обрабатываются следующим образом:
|
||
<literal>любая строка, не найденная в этом списке</literal> <
|
||
<literal>dev</literal> < <literal>alpha</literal> =
|
||
<literal>a</literal> < <literal>beta</literal> =
|
||
<literal>b</literal> < <literal>RC</literal> =
|
||
<literal>rc</literal> < <literal>#</literal> <
|
||
<literal>pl</literal> = <literal>p</literal>. Таким образом можно сравнивать
|
||
не только версии разных уровней, вроде '4.1' и '4.1.2', но и специфичные
|
||
версии, включающие статус разработки.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>version1</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Номер первой версии.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>version2</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Номер второй версии.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>operator</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Необязательный параметр <parameter>operator</parameter>.
|
||
Возможные значения:
|
||
<literal><</literal>,
|
||
<literal>lt</literal>, <literal><=</literal>,
|
||
<literal>le</literal>, <literal>></literal>,
|
||
<literal>gt</literal>, <literal>>=</literal>,
|
||
<literal>ge</literal>, <literal>==</literal>,
|
||
<literal>=</literal>, <literal>eq</literal>,
|
||
<literal>!=</literal>, <literal><></literal>,
|
||
<literal>ne</literal>.
|
||
</para>
|
||
<para>
|
||
Аргумент чувствителен к регистру, поэтому значения должны быть
|
||
в нижнем регистре.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
По умолчанию функция <function>version_compare</function> возвращает
|
||
<literal>-1</literal>, если первая версия меньше второй;
|
||
<literal>0</literal>, когда они равны;
|
||
<literal>1</literal>, если вторая меньше первой.
|
||
</para>
|
||
<para>
|
||
При использовании аргумента <parameter>operator</parameter> функция
|
||
вернёт &true;, если выражение в соответствии с оператором верно, и
|
||
&false; в противном случае.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
В примере ниже используется константа <constant>PHP_VERSION</constant>,
|
||
она содержит номер версии PHP, который выполняет код.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Пример использования <function>version_compare</function></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
|
||
echo 'Я использую PHP версии не ниже 7.0.0, моя версия: ' . PHP_VERSION . "\n";
|
||
}
|
||
|
||
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
|
||
echo 'Я использую PHP версии не ниже 5.3.0, моя версия: ' . PHP_VERSION . "\n";
|
||
}
|
||
|
||
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
|
||
echo 'Я использую PHP 5.0.0 или выше, моя версия: ' . PHP_VERSION . "\n";
|
||
}
|
||
|
||
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
|
||
echo 'Я до сих пор использую PHP 4, моя версия: ' . PHP_VERSION . "\n";
|
||
}
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="notes">
|
||
&reftitle.notes;
|
||
<note>
|
||
<para>
|
||
Константа <constant>PHP_VERSION</constant> хранит номер текущей версии PHP.
|
||
</para>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
Заметьте, что дорелизные версии, такие как 5.3.0-dev, считаются меньше,
|
||
чем финальные (вида 5.3.0).
|
||
</para>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
Специальные слова вроде <literal>alpha</literal> и
|
||
<literal>beta</literal> чувствительны к регистру. Строки версий,
|
||
не придерживающиеся PHP-стандарта, нужно приводить к нижнему регистру
|
||
функцией <function>strtolower</function> до вызова
|
||
<function>version_compare</function>.
|
||
</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
|
||
-->
|