по каким причинам php будет отображать ошибки, даже с error\_reporting (0)?

<p>по каким причинам php выдает ошибки, независимо от того, что вы говорите, чтобы они отключались?</p><p>я пытался</p><pre><code>error\_reporting(0); ini\_set('display\_errors', 0); </code></pre><p>без удачи.</p>

<p>обратите внимание на предостережение в руководстве по адресу <a href="http://uk.php.net/error\_reporting">http://uk.php.net/error\_reporting</a> :</p><blockquote> <blockquote> <p>большинство ошибок e\_strict оцениваются во время компиляции, поэтому такие ошибки не сообщаются в файле, в котором error\_reporting улучшен и включает ошибки e\_strict (и наоборот).</p> </blockquote> </blockquote><p>если ваша базовая система настроена на сообщение об ошибках e\_strict, они могут быть выведены до того, как ваш код даже будет рассмотрен. не забывайте, что error\_reporting/ini\_set являются оценками во время выполнения, и все, что выполняется в фазе "перед запуском", не увидит своего эффекта.</p><hr><p>исходя из вашего комментария, ваша ошибка ...</p><blockquote> <p>ошибка разбора: синтаксическая ошибка, неожиданный t\_variable, ожидание ',' или ';' в /usr/home/redacted/public\_html/dev.php в строке 11</p> </blockquote><p>тогда применяется та же общая концепция. ваш код никогда не запускается, так как он синтаксически неверен (вы забыли ";"). следовательно, ваши изменения в отчетах об ошибках никогда не встречаются.</p><p>чтобы исправить это, необходимо изменить отчет об ошибках системного уровня. например, на apache вы можете разместить ...</p><p>php\_value error\_reporting 0</p><p>в файле .htaccess, чтобы подавить их все, но это зависит от конфигурации системы.</p><p>прагматично, не пишите файлы с синтаксическими ошибками :)</p>

<p>чтобы предотвратить отображение ошибок, вы можете</p><ul> <li>напишите в .htaccess: <em>php\_flag display\_errors</em></li> <li>разделите ваш код на отдельные модули, в которых основной (родительский) php файл устанавливает только error\_logging, а затем включите () другие файлы.</li> </ul>

<p>используйте <a href="http://php.net/manual/en/function.phpinfo.php">phpinfo</a> , чтобы найти загруженный php.ini и отредактировать его, чтобы скрыть ошибки. это отменяет то, что вы положили в свой сценарий.</p>

<p>используется ли <code>set\_error\_handler()</code> где-нибудь в вашем скрипте? это переопределяет <code>error\_reporting(0)</code>.</p>

<p>используйте log\_errors для их регистрации вместо отображения</p>

<blockquote> <p>прагматично, не пишите файлы с синтаксическими ошибками :)</p> </blockquote><p>чтобы убедиться, что в вашем файле нет синтаксических ошибок, выполните следующее:</p><pre><code>php -l your\_file\_here.php </code></pre><p>это выведет что-то вроде этого:</p><pre><code>php parse error: syntax error, unexpected '}' in connection.class.php on line 31 </code></pre>

<p>если параметр указан в apache с использованием php\_admin\_value, его нельзя изменить в .htaccess или во время выполнения. смотрите: <a href="http://docs.php.net/configuration.changes">http://docs.php.net/configuration.changes</a> </p>

<p>просто добавьте приведенный ниже код в ваш файл <strong>index.php</strong>:</p><pre><code>ini\_set('display\_errors', false); </code></pre>