<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.errorfunc.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'function.set-error-handler.php',
    1 => 'set_error_handler',
    2 => 'Устанавливает пользовательский обработчик ошибок',
  ),
  'up' => 
  array (
    0 => 'ref.errorfunc.php',
    1 => 'Функции обработки ошибок',
  ),
  'prev' => 
  array (
    0 => 'function.restore-exception-handler.php',
    1 => 'restore_exception_handler',
  ),
  'next' => 
  array (
    0 => 'function.set-exception-handler.php',
    1 => 'set_exception_handler',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/errorfunc/functions/set-error-handler.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.set-error-handler" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">set_error_handler</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.1, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">set_error_handler</span> &mdash; <span class="dc-title">
   Устанавливает пользовательский обработчик ошибок
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.set-error-handler-description">
  <h3 class="title">Описание</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>set_error_handler</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span></span> <code class="parameter">$callback</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$error_levels</code><span class="initializer"> = <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong></span></span>): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span></span></div>

  <p class="para rdfs-comment">
   Функция устанавливает пользовательскую <code class="parameter">callback</code>-функцию
   обработки ошибок, которые возникают в скрипте.
  </p>
  <p class="para">
   Функция определяет пользовательские обработчики ошибок, которые возникают во время выполнения кода.
   Обработчики устанавливают в приложениях, которым требуется
   очистить файлы или данные при критичной для приложения ошибке или при ошибке,
   которую сгенерировали функцией <span class="function"><a href="function.trigger-error.php" class="function">trigger_error()</a></span> в ответ на конкретные условия.
  </p>
  <p class="para">
   Важно помнить: PHP-движок передаст ошибки, типы которых указали
   в параметре <code class="parameter">error_levels</code>, в стандартный обработчик ошибок,
   только если callback-функция вернёт значение <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. Движок вызовет пользовательский
   обработчик ошибок, даже если уровень ошибки не соответствует настройкам,
   которые установили функцией <span class="function"><a href="function.error-reporting.php" class="function">error_reporting()</a></span>.
   При этом текущее значение директивы <a href="errorfunc.configuration.php#ini.error-reporting" class="link">error_reporting</a>
   остаётся доступным для чтения, чтобы выполнить операции, которые соответствуют ситуации.
  </p>

  <p class="para">
   Обратите также внимание, за остановку выполнения скрипта функцией <span class="function"><a href="function.exit.php" class="function">exit()</a></span>,
   когда требуется, отвечает пользовательский обработчик.
   Выполнение скрипта продолжится со следующей инструкции после той, которая вызвала ошибку,
   если функция обработки ошибок вернёт управление.
  </p>
  <p class="para">
   Пользовательской функцией невозможно обработать ошибки следующих типов:
   <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>, <strong><code><a href="errorfunc.constants.php#constant.e-parse">E_PARSE</a></code></strong>,
   <strong><code><a href="errorfunc.constants.php#constant.e-core-error">E_CORE_ERROR</a></code></strong>, <strong><code><a href="errorfunc.constants.php#constant.e-core-warning">E_CORE_WARNING</a></code></strong>,
   <strong><code><a href="errorfunc.constants.php#constant.e-compile-error">E_COMPILE_ERROR</a></code></strong>,
   <strong><code><a href="errorfunc.constants.php#constant.e-compile-warning">E_COMPILE_WARNING</a></code></strong> независимо от места, в котором возникла ошибка,
   и бо́льшую часть ошибок уровня <strong><code><a href="errorfunc.constants.php#constant.e-strict">E_STRICT</a></code></strong>, которые возникли в файле вызова
   функции <span class="function"><strong>set_error_handler()</strong></span>.
  </p>
  <p class="para">
   Пользовательский обработчик ошибок регистрируется при выполнении скрипта.
   Операции наподобие загрузки файлов начинаются до запуска скрипта,
   поэтому невозможно зарегистрировать и вызвать обработчик для таких ошибок.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.set-error-handler-parameters">
  <h3 class="title">Список параметров</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">callback</code></dt>
     <dd>
      <p class="para">
       При передаче значения <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> обработчик сбрасывается в состояние по умолчанию,
       иначе обработчиком становится callback-функция со следующей сигнатурой:
      </p>
      <p class="para">
       <div class="methodsynopsis dc-description">
        <span class="methodname"><span class="replaceable">handler</span></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$errno</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$errstr</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$errfile</code><span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$errline</code><span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$errcontext</code><span class="initializer"> = ?</span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

       <dl>
        
         <dt><code class="parameter">errno</code></dt>
         <dd>
          <span class="simpara">
           В первый параметр — <code class="parameter">errno</code> передаётся целое число,
           которое указывает на уровень ошибки.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errstr</code></dt>
         <dd>
          <span class="simpara">
           Во второй параметр — <code class="parameter">errstr</code> передаётся строка
           с сообщением об ошибке.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errfile</code></dt>
         <dd>
          <span class="simpara">
           В третий параметр — <code class="parameter">errfile</code> передаётся
           строка с названием файла, в котором возникла ошибка, если параметр
           определили в функции обратного вызова.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errline</code></dt>
         <dd>
          <span class="simpara">
           В четвёртный параметр — <code class="parameter">errline</code> передаётся
           целочисленный номер строки, в которой возникла ошибка, если параметр
           определили в функции обратного вызова.
          </span>
         </dd>
        
        
         <dt><code class="parameter">errcontext</code></dt>
         <dd>
          <span class="simpara">
           В пятый параметр — <code class="parameter">errcontext</code> передаётся
           массив, который указывает на активную таблицу символов в точке,
           в которой возникла ошибка, если параметр определили в функции обратного вызова.
           Другими словами, параметр <code class="parameter">errcontext</code>
           будет содержать массив переменных той области действия, в которой возникла ошибка.
           Контекст ошибки не модифицируют в пользовательском обработчике ошибок,
           чтобы при возврате управления сохранить согласованность данных.
          </span>
          <div class="warning"><strong class="warning">Внимание</strong>
           <p class="simpara">
            С PHP 7.2.0 параметр <em>УСТАРЕЛ</em>,
            а в PHP 8.0.0 параметр <em>УДАЛИЛИ</em>. Обработчик выдаст ошибку
            &quot;too few arguments&quot;, если в callback-функции параметр определили,
            но не установили значение по умолчанию.
           </p>
          </div>
         </dd>
        
       </dl>
      </p>
      <p class="para">
       При возврате из функции значения <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> управление передаётся стандартному
       обработчику ошибок.
      </p>
     </dd>
    
    
     <dt><code class="parameter">error_levels</code></dt>
     <dd>
      <p class="para">
       Параметр устанавливает маску уровней ошибок,
       при которых сработает <code class="parameter">callback</code>-функция.
       Параметр управляет срабатыванием пользовательского обработчика ошибок
       так же, как ini-настройка <a href="errorfunc.configuration.php#ini.error-reporting" class="link">error_reporting</a>
       управляет отображением ошибок. Без установки маски движок вызывает
       <code class="parameter">callback</code>-функцию для каждой ошибки
       и игнорирует настройку директивы <a href="errorfunc.configuration.php#ini.error-reporting" class="link">error_reporting</a>.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.set-error-handler-returnvalues">
  <h3 class="title">Возвращаемые значения</h3>
  <p class="para">
   Функция возвращает предыдущий обработчик ошибок как значение с типом <span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span>,
   если такой обработчик определили, или значение <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, если за текущую обработку
   ошибок отвечает встроенный обработчик.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.set-error-handler-changelog">
  <h3 class="title">Список изменений</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Версия</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        Параметр <code class="parameter">errcontext</code> удалили. Контекст ошибки больше не передаётся
        в пользовательскую callback-функцию.
       </td>
      </tr>

      <tr>
       <td>7.2.0</td>
       <td>
        Параметр <code class="parameter">errcontext</code> устарел. При определении параметра
        в пользовательском обработчике функция выдаст ошибку уровня <strong><code><a href="errorfunc.constants.php#constant.e-deprecated">E_DEPRECATED</a></code></strong>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.set-error-handler-examples">
  <h3 class="title">Примеры</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Пример #1 
     Обработка ошибок функциями <span class="function"><strong>set_error_handler()</strong></span>
     и <span class="function"><a href="function.trigger-error.php" class="function">trigger_error()</a></span>
    </strong></p>
    <div class="example-contents"><p>
     Пример ниже демонстрирует обработку внутренних исключений путём
     вызова ошибок разных типов и их обработки пользовательской функцией:
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Функция обработки ошибок<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">myErrorHandler</span><span style="color: #007700">(</span><span style="color: #0000BB">$errno</span><span style="color: #007700">, </span><span style="color: #0000BB">$errstr</span><span style="color: #007700">, </span><span style="color: #0000BB">$errfile</span><span style="color: #007700">, </span><span style="color: #0000BB">$errline</span><span style="color: #007700">)<br />{<br />    if (!(</span><span style="color: #0000BB">error_reporting</span><span style="color: #007700">() &amp; </span><span style="color: #0000BB">$errno</span><span style="color: #007700">)) {<br />        </span><span style="color: #FF8000">// Директива error_reporting не включает этот код ошибки,<br />        // поэтому пусть ошибку обрабатывает стандартный обработчик ошибок PHP<br />        </span><span style="color: #007700">return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />    }<br /><br />    </span><span style="color: #FF8000">// Переменной $errstr требуется экранирование:<br />    </span><span style="color: #0000BB">$errstr </span><span style="color: #007700">= </span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">$errstr</span><span style="color: #007700">);<br /><br />    switch (</span><span style="color: #0000BB">$errno</span><span style="color: #007700">) {<br />        case </span><span style="color: #0000BB">E_USER_ERROR</span><span style="color: #007700">:<br />            echo </span><span style="color: #DD0000">"&lt;b&gt;Пользовательская ОШИБКА&lt;/b&gt; [</span><span style="color: #0000BB">$errno</span><span style="color: #DD0000">] </span><span style="color: #0000BB">$errstr</span><span style="color: #DD0000">&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            echo </span><span style="color: #DD0000">"  Фатальная ошибка в строке </span><span style="color: #0000BB">$errline</span><span style="color: #DD0000"> файла </span><span style="color: #0000BB">$errfile</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />            echo </span><span style="color: #DD0000">", PHP " </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_VERSION </span><span style="color: #007700">. </span><span style="color: #DD0000">" (" </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_OS </span><span style="color: #007700">. </span><span style="color: #DD0000">")&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            echo </span><span style="color: #DD0000">"Завершение работы...&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br />        case </span><span style="color: #0000BB">E_USER_WARNING</span><span style="color: #007700">:<br />            echo </span><span style="color: #DD0000">"&lt;b&gt;Пользовательское ПРЕДУПРЕЖДЕНИЕ&lt;/b&gt; [</span><span style="color: #0000BB">$errno</span><span style="color: #DD0000">] </span><span style="color: #0000BB">$errstr</span><span style="color: #DD0000">&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            break;<br /><br />        case </span><span style="color: #0000BB">E_USER_NOTICE</span><span style="color: #007700">:<br />            echo </span><span style="color: #DD0000">"&lt;b&gt;Пользовательское УВЕДОМЛЕНИЕ&lt;/b&gt; [</span><span style="color: #0000BB">$errno</span><span style="color: #DD0000">] </span><span style="color: #0000BB">$errstr</span><span style="color: #DD0000">&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            break;<br /><br />        default:<br />            echo </span><span style="color: #DD0000">"Неизвестная ошибка: [</span><span style="color: #0000BB">$errno</span><span style="color: #DD0000">] </span><span style="color: #0000BB">$errstr</span><span style="color: #DD0000">&lt;br /&gt;\n"</span><span style="color: #007700">;<br />            break;<br />    }<br /><br />    </span><span style="color: #FF8000">/* Не запускаем внутренний обработчик ошибок PHP */<br />    </span><span style="color: #007700">return </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Функция тестирования обработчика ошибок<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">scale_by_log</span><span style="color: #007700">(</span><span style="color: #0000BB">$vect</span><span style="color: #007700">, </span><span style="color: #0000BB">$scale</span><span style="color: #007700">)<br />{<br />    if (!</span><span style="color: #0000BB">is_numeric</span><span style="color: #007700">(</span><span style="color: #0000BB">$scale</span><span style="color: #007700">) || </span><span style="color: #0000BB">$scale </span><span style="color: #007700">&lt;= </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #DD0000">"log(x) для x &lt;= 0 не определён, вы используете: scale = </span><span style="color: #0000BB">$scale</span><span style="color: #DD0000">"</span><span style="color: #007700">, </span><span style="color: #0000BB">E_USER_ERROR</span><span style="color: #007700">);<br />    }<br /><br />    if (!</span><span style="color: #0000BB">is_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$vect</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #DD0000">"Некорректный входной вектор, пропущен массив значений"</span><span style="color: #007700">, </span><span style="color: #0000BB">E_USER_WARNING</span><span style="color: #007700">);<br />        return </span><span style="color: #0000BB">null</span><span style="color: #007700">;<br />    }<br /><br />    </span><span style="color: #0000BB">$temp </span><span style="color: #007700">= array();<br />    foreach (</span><span style="color: #0000BB">$vect </span><span style="color: #007700">as </span><span style="color: #0000BB">$pos </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$value</span><span style="color: #007700">) {<br />        if (!</span><span style="color: #0000BB">is_numeric</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">)) {<br />            </span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #DD0000">"Значение на позиции </span><span style="color: #0000BB">$pos</span><span style="color: #DD0000"> не относится к числу, присваиваем значение 0 (ноль)"</span><span style="color: #007700">, </span><span style="color: #0000BB">E_USER_NOTICE</span><span style="color: #007700">);<br />            </span><span style="color: #0000BB">$value </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />        }<br />        </span><span style="color: #0000BB">$temp</span><span style="color: #007700">[</span><span style="color: #0000BB">$pos</span><span style="color: #007700">] = </span><span style="color: #0000BB">log</span><span style="color: #007700">(</span><span style="color: #0000BB">$scale</span><span style="color: #007700">) * </span><span style="color: #0000BB">$value</span><span style="color: #007700">;<br />    }<br /><br />    return </span><span style="color: #0000BB">$temp</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Переключаемся на пользовательский обработчик<br /></span><span style="color: #0000BB">$old_error_handler </span><span style="color: #007700">= </span><span style="color: #0000BB">set_error_handler</span><span style="color: #007700">(</span><span style="color: #DD0000">"myErrorHandler"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Вызовем ряд ошибок, и вначале определим смешанный массив с нечисловым элементом<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"vector a\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array(</span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #DD0000">"foo"</span><span style="color: #007700">, </span><span style="color: #0000BB">5.5</span><span style="color: #007700">, </span><span style="color: #0000BB">43.3</span><span style="color: #007700">, </span><span style="color: #0000BB">21.11</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Теперь создадим ещё один массив<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"----\nvector b - a notice (b = log(PI) * a)\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">/* Значение на позиции $pos не относится к числу, присваиваем 0 (ноль)*/<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">scale_by_log</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">M_PI</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$b</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Проблема, вместо массива передали строку<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"----\nvector c - a warning\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">/* Некорректный входной вектор, ожидается массив значений */<br /></span><span style="color: #0000BB">$c </span><span style="color: #007700">= </span><span style="color: #0000BB">scale_by_log</span><span style="color: #007700">(</span><span style="color: #DD0000">"not array"</span><span style="color: #007700">, </span><span style="color: #0000BB">2.3</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$c</span><span style="color: #007700">); </span><span style="color: #FF8000">// NULL<br /><br />// Критическая ошибка, логарифм нуля или отрицательного числа не определён<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"----\nvector d - fatal error\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">/* log(x) для x &lt;= 0 не определён, передали: scale = $scale */<br /></span><span style="color: #0000BB">$d </span><span style="color: #007700">= </span><span style="color: #0000BB">scale_by_log</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, -</span><span style="color: #0000BB">2.5</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$d</span><span style="color: #007700">); </span><span style="color: #FF8000">// До этого места никогда не дойдём<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    
<div class="example-contents"><p>
 Вывод приведённого примера будет похож на:
</p></div>

    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">vector a
Array
(
    [0] =&gt; 2
    [1] =&gt; 3
    [2] =&gt; foo
    [3] =&gt; 5.5
    [4] =&gt; 43.3
    [5] =&gt; 21.11
)
----
vector b - a notice (b = log(PI) * a)
&lt;b&gt;Пользовательское УВЕДОМЛЕНИЕ&lt;/b&gt; [1024] Значение на позиции 2 не относится к числу, присваиваем значение 0 (ноль)&lt;br /&gt;
Array
(
    [0] =&gt; 2.2894597716988
    [1] =&gt; 3.4341896575482
    [2] =&gt; 0
    [3] =&gt; 6.2960143721717
    [4] =&gt; 49.566804057279
    [5] =&gt; 24.165247890281
)
----
vector c - a warning
&lt;b&gt;Пользовательское ПРЕДУПРЕЖДЕНИЕ&lt;/b&gt; [512] Некорректный входной вектор, пропущен массив значений&lt;br /&gt;
NULL
----
vector d - fatal error
&lt;b&gt;Пользовательская ОШИБКА&lt;/b&gt; [256] log(x) для x &amp;lt;= 0 не определён, вы используете: scale = -2.5&lt;br /&gt;
  Фатальная ошибка в строке 44 файла /in/IYIBO, PHP 7.4.33 (Linux)&lt;br /&gt;
Завершение работы...&lt;br /&gt;</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.set-error-handler-seealso">
  <h3 class="title">Смотрите также</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="classname"><a href="class.errorexception.php" class="classname">ErrorException</a></span></li>
    <li><span class="function"><a href="function.error-reporting.php" class="function" rel="rdfs-seeAlso">error_reporting()</a> - Определяет, о каких PHP-ошибках сообщать</span></li>
    <li><span class="function"><a href="function.restore-error-handler.php" class="function" rel="rdfs-seeAlso">restore_error_handler()</a> - Восстанавливает предыдущую функцию обработчика ошибок</span></li>
    <li><span class="function"><a href="function.get-error-handler.php" class="function" rel="rdfs-seeAlso">get_error_handler()</a> - Получает пользовательскую функцию обработчика ошибок</span></li>
    <li><span class="function"><a href="function.trigger-error.php" class="function" rel="rdfs-seeAlso">trigger_error()</a> - Генерирует предупреждение, уведомление или сообщение об ошибке на уровне пользователя</span></li>
    <li><a href="errorfunc.constants.php" class="link">Константы уровней ошибок</a></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>