1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/info/functions/assert-options.xml
2024-01-12 16:59:32 +03:00

276 lines
9.6 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: ada1d79de35239334b68d0120b011530e31244ff Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.assert-options" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>assert_options</refname>
<refpurpose>Установка и получение настроек механизма проверки утверждений</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-8-3-0;
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>assert_options</methodname>
<methodparam><type>int</type><parameter>option</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
Задание значений настроек механизма проверки утверждений
<function>assert</function> или получение их текущих значений.
</para>
<note>
<simpara>
Использование <function>assert_options</function> не рекомендуется в пользу установки и получения &php.ini; директив <link linkend="ini.zend.assertions">zend.assertions</link> и
<link linkend="ini.assert.exception">assert.exception</link> с помощью <function>ini_set</function> и <function>ini_get</function> соответственно.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>option</parameter></term>
<listitem>
<para>
<table>
<title>Настройки механизма проверки утверждений</title>
<tgroup cols="4">
<thead>
<row>
<entry>Настройка</entry>
<entry>INI-параметр</entry>
<entry>Значение по умолчанию</entry>
<entry>Описание</entry>
</row>
</thead>
<tbody>
<row>
<entry>ASSERT_ACTIVE</entry>
<entry>assert.active</entry>
<entry>1</entry>
<entry>включение механизма проверки утверждений</entry>
</row>
<row>
<entry>ASSERT_EXCEPTION</entry>
<entry>assert.exception</entry>
<entry>1</entry>
<entry>выбрасывает <classname>AssertionError</classname> для каждого неудачного утверждения</entry>
</row>
<row>
<entry>ASSERT_WARNING</entry>
<entry>assert.warning</entry>
<entry>1</entry>
<entry>вывод предупреждения PHP для каждой неудачной проверки</entry>
</row>
<row>
<entry>ASSERT_BAIL</entry>
<entry>assert.bail</entry>
<entry>0</entry>
<entry>завершить выполнение в случае неудачной проверки</entry>
</row>
<row>
<entry>ASSERT_QUIET_EVAL</entry>
<entry>assert.quiet_eval</entry>
<entry>0</entry>
<entry>отключить error_reporting во время проверки утверждения. Удалено начиная с PHP 8.0.0.</entry>
</row>
<row>
<entry>ASSERT_CALLBACK</entry>
<entry>assert.callback</entry>
<entry>(&null;)</entry>
<entry>
Callback-функция, которую необходимо вызвать для провалившего
проверку утверждения
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
Необязательный аргумент, новое значение настройки.
</para>
<para>
У callback-функции, установленной с помощью <constant>ASSERT_CALLBACK</constant> или <link linkend="ini.assert.callback">assert.callback</link>,
должна быть следующая сигнатура:
<methodsynopsis role="procedural">
<type>void</type><methodname>assert_callback</methodname>
<methodparam><type>string</type><parameter>file</parameter></methodparam>
<methodparam><type>int</type><parameter>line</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>null</type></type><parameter>assertion</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>description</parameter></methodparam>
</methodsynopsis>
<variablelist>
<varlistentry>
<term><parameter>file</parameter></term>
<listitem>
<simpara>
Файл, в котором была вызвана <function>assert</function>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>line</parameter></term>
<listitem>
<simpara>
Строка, в которой была вызвана <function>assert</function>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>assertion</parameter></term>
<listitem>
<simpara>
До PHP 8.0.0 утверждение, которое передавалось в функцию <function>assert</function>,
но только если утверждение задано в виде строки.
(Если утверждение является логическим условием, этот параметр будет пустой строкой).
Начиная с PHP 8.0.0, этот параметр всегда &null;.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>description</parameter></term>
<listitem>
<simpara>
Описание, которое было передано в <function>assert</function>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
Передача пустой строки в <parameter>value</parameter> сбрасывает assert callback.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает исходное значение настройки.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Функция выбрасывает <classname>ValueError</classname>,
если параметр <parameter>option</parameter> не является допустимой опцией.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
Функция <function>assert_option</function> объявлена устаревшей.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
Если параметр <parameter>option</parameter> не является допустимой опцией,
теперь выбрасывается ошибка <classname>ValueError</classname>;
ранее возвращалось значение &false;.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>assert_options</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Наша функция обработчик
// неудавшихся проверок
function function assert_failure($file, $line, $assertion, $message)
{
echo "Проверка $assertion в $file на строке $line провалена: $message";
}
// Тестовая функция
function test_assert($parameter)
{
assert(is_bool($parameter));
}
// настройки проверки
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');
// заведомо ошибочное утверждение
test_assert(1);
// Этот код не будет выполняться, пока ASSERT_BAIL
// равен true
echo 'Никогда не будет выведено';
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>assert</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
-->