1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 08:42:13 +01:00
Files
archived-doc-ru/reference/strings/functions/substr-compare.xml
2024-05-20 23:57:23 +03:00

180 lines
6.0 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a3573c18b89fd32aca1c3924d3fd9568900b4a33 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.substr-compare" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>substr_compare</refname>
<refpurpose>Сравнивает две строки от смещения до заданной длины символов в бинарно-безопасном режиме</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>substr_compare</methodname>
<methodparam><type>string</type><parameter>haystack</parameter></methodparam>
<methodparam><type>string</type><parameter>needle</parameter></methodparam>
<methodparam><type>int</type><parameter>offset</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>case_insensitive</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>substr_compare</function> сравнивает строку
<parameter>haystack</parameter> (начиная с позиции
<parameter>offset</parameter>) со строкой
<parameter>needle</parameter>. В сравнении участвуют максимум
<parameter>length</parameter> символов.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>haystack</parameter></term>
<listitem>
<para>
Основная сравниваемая строка.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>needle</parameter></term>
<listitem>
<para>
Следующая сравниваемая строка.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
Стартовая позиция сравнения. Если отрицательна, то обозначает
смещение с конца строки.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
Длина сравнения. По умолчанию используется максимальная из длин
<parameter>needle</parameter> и <parameter>haystack</parameter>
минус <parameter>offset</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>case_insensitive</parameter></term>
<listitem>
<para>
Если значение параметра <parameter>case_insensitive</parameter> равно &true;,
сравнение выполняется без учёта регистра.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает <literal>-1</literal>, если значение <parameter>string1</parameter>
меньше значения <parameter>string2</parameter>, <literal>1</literal>,
если значение <parameter>string1</parameter> больше значения <parameter>string2</parameter>,
и <literal>0</literal>, если строки равны.
Если параметр <parameter>offset</parameter> больше (до PHP 7.2.18, 7.3.5) или равен длине
параметра <parameter>haystack</parameter> или параметр <parameter>length</parameter> передали
и его значение меньше 0, функция <function>substr_compare</function> выводит
предупреждение и возвращает &false;.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&standard.changelog.binary-safe-string-comparison;
<row>
<entry>8.0.0</entry>
<entry>
Параметр <parameter>length</parameter> теперь принимает значение null.
</entry>
</row>
<row>
<entry>7.2.18, 7.3.5</entry>
<entry>
Параметр <parameter>offset</parameter> теперь может быть равен параметру <parameter>haystack</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>substr_compare</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // Предупреждение
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>strncmp</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
-->