mirror of
https://github.com/php/doc-ja.git
synced 2026-03-26 08:02:15 +01:00
190 lines
6.7 KiB
XML
190 lines
6.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 4e6f0774f03131cbeeb8c21019a690bf97fd22b6 Maintainer: hirokawa Status: ready -->
|
|
<!-- CREDITS: takagi,mumumu -->
|
|
<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' のようなバージョンの違いだけではなく
|
|
PHP 固有の開発ステータスの違いも判断することが可能となります。
|
|
</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>
|
|
オプションの演算子。
|
|
指定可能な演算子を以下に示します。
|
|
<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> の戻り値は
|
|
最初のバージョンが 2 番目のバージョンより小さい場合に <literal>-1</literal>、
|
|
同じ場合に <literal>0</literal>、そして 2 番目のバージョンのほうが小さい場合に
|
|
<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 '7.0.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";
|
|
}
|
|
|
|
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
|
|
echo '5.3.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";
|
|
}
|
|
|
|
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
|
|
echo '5.0.0 より新しいバージョンの PHP を使っています。バージョンは ' . 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
|
|
-->
|