php报错
这些函数的行为受 php.ini 中的设置影响。
error_reporting | NULL | PHP_INI_ALL | |
display_errors | "1" | PHP_INI_ALL | |
display_startup_errors | "0" | PHP_INI_ALL | |
log_errors | "0" | PHP_INI_ALL | |
log_errors_max_len | "1024" | PHP_INI_ALL | Available since PHP 4.3.0. |
ignore_repeated_errors | "0" | PHP_INI_ALL | Available since PHP 4.3.0. |
ignore_repeated_source | "0" | PHP_INI_ALL | Available since PHP 4.3.0. |
report_memleaks | "1" | PHP_INI_ALL | Available since PHP 4.3.0. |
track_errors | "0" | PHP_INI_ALL | |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP |
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Available since PHP 4.1.0. |
xmlrpc_error_number | "0" | PHP_INI_ALL | Available since PHP 4.1.0. |
docref_root | "" | PHP_INI_ALL | Available since PHP 4.3.0. |
docref_ext | "" | PHP_INI_ALL | Available since PHP 4.3.2. |
error_prepend_string | NULL | PHP_INI_ALL | |
error_append_string | NULL | PHP_INI_ALL | |
error_log | NULL | PHP_INI_ALL |
这是配置指令的简短说明。
error_reporting integer
设置错误报告的级别。该参数可以是一个任意的表示二进制位字段的整数,或者常数名称。错误级别和常数是在 预定义常量定义的,在 php.ini 之中也有专门的说明。在程序运行时,还可以通过 error_reporting() 函数进行设置。请查看 display_errors 了解详情。
在PHP 4和PHP 5之中,其默认值为 E_ALL & ~E_NOTICE。 该设置表示除了 E_NOTICE 其他都显示的错误级别。在开发过程中很有必要显示它们。
Note:
在开发阶段启用 E_NOTICE 会有一些好处。出于调试的目的:通知信息会对代码中可能出现的bug给出警告。例如,使用未预先分配和定义的值,就会给出警告。它对于查找拼写错误非常有用,并且可以节省调试的时间。通知信息也会警告你使用更好的代码风格。例如,$arr[item] 最好写成 $arr['item'] ,因为 PHP 会试图将"item" 当成一个常量。如果它不是一个常量,PHP才会把它当做数组的字符串索引。
Note:
在PHP 5之中,提供了一个新的错误级别 E_STRICT。 因为 E_STRICT 并不包含在 E_ALL 之中,你必须明确启用才能显示这个类别的错误信息。在开发阶段启用E_STRICT 会有一些好处。严格的信息将帮助你使用最新和最好的建议的方法来编写代码,例如它会警告你使用了将被废弃的函数。
Note: PHP外的PHP常量
在 PHP 以外使用PHP的常量是没有意义的,例如在 httpd.conf 之中, 你需要使用常量对应的 integer 值来取代。因为随着时间的推移和PHP的发展,会有更多的错误级别将被添加,因此错误级别的最大值(为 E_ALL)可能会改变 。因此在使用 E_ALL 对应整数值的地方,应该考虑使用较大的数值来涵盖当前和将来需要使用的二进制位字段,例如数值 2147483647 (将包含所有错误,而不仅仅是 E_ALL).
display_errors string
该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。
设置 "stderr" 表示发送到 stderr 而不是 stdout。 "stderr"从 PHP 5.2.4 开始可用。在以前的版本中,该配置值的类型为 boolean.
Note:
这是一个辅助开发的功能,建议永远不要在生产系统中使用 (例如系统被连接到互联网对外提供服务)。
Note:
尽管 display_errors 也可以在运行时设置 (使用 ini_set()), 但是脚本出现致命错误时任何运行时的设置都是无效的。 因为在这种情况下预期运行的操作不会被执行。
display_startup_errors boolean
即使 display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外,将 display_startup_errors 设置为关闭。
log_errors boolean设置是否将脚本运行的错误信息记录到服务器错误日志或者error_log之中。注意,这是与服务器相关的特定配置项。
Note:
在生产系统中,强烈建议你使用错误日志记录web站点上显示的错误信息。
log_errors_max_len integer
设置 log_errors 的最大字节数. 在 error_log 会添加有关错误源的信息。默认值为1024,如果设置为0表示不限长度。该长度设置对记录的错误,显示的错误,以及$php_errormsg都会有限制作用。
当使用 integer 时, 其值以字节来衡量。还可以使用在FAQ中描述的速记符。 ignore_repeated_errors boolean不记录重复的信息。重复的错误必须出现在同一个文件中的同一行代码上,除非 ignore_repeated_source 设置为true。
ignore_repeated_source boolean忽略重复消息时,也忽略消息的来源。当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。
report_memleaks boolean如果这个参数设置为Off,则内存泄露信息不会显示 (在 stdout 或者日志中)。这支队调试编译有效,而且需要 error_reporting 包含了 E_WARNING 才会起作用
track_errors boolean如果开启,最后的一个错误将永远存在于变量 $php_errormsg 中。
html_errors boolean在错误信息中关闭HTML标签。这种新的HTML格式的错误信息是可以点击,它引导用户前往描述该错误或者导致该错误发生的函数的参考信息页面。 这些参考与docref_root 和 docref_ext 的设置有关。
xmlrpc_errors boolean关闭正常的错误报告,并将错误的格式设置为XML-RPC错误信息的格式。
xmlrpc_error_number integer用作 XML-RPC faultCode 元素的值。
docref_root string新的错误信息格式包含了对应的参考页面,该页面对错误进行具体描述,或者描述了导致该错误发生的函数。为了提供手册的页面,你可以在PHP官方站点下载对应语言的手册,并在ini中设置网址到本地对应的地址。如果你的本地手册拷贝可以使用"/manual/" 访问,你就可以简单的设置 docref_root=/manual/。另外你还需要设置 docref_ext 匹配你本地文件的后缀名 docref_ext=.html。当然也可以设置一个外部的参考地址。例如你可以设置 docref_root=http://manual/en/ 或者docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"
通常需要在 docref_root 后面以 "/"结尾, 但是在以上的第二种示例情况中不必这么设置。
Note:
因为这么做可以快速定位和查看到函数的说明,所以它对你的开发会非常有用。建议永远不要再生产系统中使用 (例如系统被连接到互联网对外提供服务)。
docref_ext string
参见 docref_root.
Note:
docref_ext的值必须以 "." 开头.
error_prepend_string string
错误信息之前输出的内容。
error_append_string string错误信息之后输出的内容。
error_log string设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。如果特殊值 syslog 被设置,则将错误信息发送到系统日志记录器。在Unix以及类似系统上,使用的是 syslog(3) ,而在 Windows NT 类系统上则为事件日志。Windows 95上不支持系统日志记录。参见: syslog(). 如果该配置没有设置,则错误信息会被发送到 SAPI 错误记录器。例如,出现在Apache的错误日志中,或者在CLI中发送到 stderr。
资源类型 安装 [edit] Last updated: Fri, 24 Feb 2012
add a note User Contributed Notes 运行时配置
bub at nospam dot com 11-Jul-2011 02:06
Do NOT call session_start() before you call error_reporting();
// does NOT work correctly
session_start();
error_reporting(NULL);
// does work
error_reporting(NULL);
session_start();
?>
geompse at gmail dot com 14-Feb-2011 07:49
Note that if error_log is empty, errors/warnings/notices will be written to stderr (standard error stream), and this may be a problem if you is PHP in CLI.
# test.php
error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','my_file.log');
foreach(1 as $i);
ini_set('error_log','');
foreach(1 as $i);
ini_set('error_log','/dev/null'); #linux
foreach(1 as $i);
?>
php -f test.php
will output :
Warning: Invalid argument supplied for foreach() in /test.php on line 7 # stdout
PHP Warning: Invalid argument supplied for foreach() in /test.php on line 10 # stderr
Warning: Invalid argument supplied for foreach() in /test.php on line 10 # stdout
Warning: Invalid argument supplied for foreach() in /test.php on line 13 # stdout
?>
Errors displayed in the stdout (standard output stream) car be catched with the output buffering functions (ob_start/ob_get_clean) while strerr cannot.
plonk at xonx dot de 12-Jan-2011 11:46
When using PHP with Apache mod_fcgid and "log_errors = On", PHP errors get logged into Apache ErrorLog file with severity "warn". No matter what severity the PHP error itself has, the severity in the Apache log is "warn".
To log PHP errors in the Apache log, use:
LogLevel warn
(or debug, info, notice)
alvaro at demogracia dot com 26-Nov-2010 03:16
In the Apache directive "php_value" you cannot omit the value and empty strings are not allowed:
#WRONG
php_value error_log
php_value error_log ""
In such cases, you can use "none". It is a special keyword for PHP that means "no value asigned":
#OK: empty string
php_value error_log none
hutchike at gmail dot com 23-Jul-2009 11:42
If you want to avoid a fatal error when an undefined method call fails, you can add a simple Exception thrower like this:
class MyClass
{
// ...lots of your regular code, then:
public function __call($name, $args)
{
throw new Exception('Undefined method ' . $name . '() called');
}
}
?>
This means your top-level code can simple run inside a
block, and catch the errors that were fatal before.
ivanmaz at yandex dot ru 02-Apr-2009 11:44
There is a more simple and more correct solution - to use file .htaccess, where you can simply add the following lines:
php_value display_errors 1
php_value display_startup_errors 1
cjakeman at bcs dot org 17-Mar-2009 01:06
Using
at the top of your script will not catch any parse errors. A missing ")" or ";" will still lead to a blank page.
This is because the entire script is parsed before any of it is executed. If you are unable to change php.ini and set
display_errors On
then there is a possible solution suggested under error_reporting:
error_reporting(E_ALL);
ini_set("display_errors", 1);
include("file_with_errors.php");
?>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 오류 해결: 지정된 네임스페이스 클래스를 찾을 수 없습니다. PHP를 사용하여 개발할 때 다양한 오류 메시지가 자주 발생합니다. 일반적인 오류 중 하나는 "지정된 네임스페이스 클래스를 찾을 수 없습니다"입니다. 이 오류는 일반적으로 가져온 클래스 파일이 제대로 네임스페이스를 참조하지 않기 때문에 발생합니다. 이 문서에서는 이 문제를 해결하는 방법을 설명하고 몇 가지 코드 예제를 제공합니다. 먼저 일반적인 오류 메시지의 예를 살펴보겠습니다. Fatalerror:UncaughtError:C

PHP 오류: 정의되지 않은 네임스페이스에서 함수를 호출하면 어떻게 해야 합니까? PHP로 프로그래밍할 때 정의되지 않은 네임스페이스에서 함수를 호출하면 오류가 자주 발생합니다. 이 오류는 일반적으로 네임스페이스를 참조하지만 올바르게 가져오지 않을 때 발생합니다. 이 기사에서는 이 문제를 해결하는 여러 가지 방법을 소개하고 해당 코드 예제를 제공합니다. 첫 번째 해결 방법은 네임스페이스 접두사를 사용하여 함수를 호출하는 것입니다. 네임스페이스를 참조하지만 해당 네임스페이스의 함수를 가져오지 않으면

PHP 오류 해결: 상위 클래스 상속 시 발생하는 문제 PHP에서 상속은 객체 지향 프로그래밍의 중요한 기능입니다. 상속을 통해 기존 코드를 재사용하고 원본 코드를 수정하지 않고도 확장하고 개선할 수 있습니다. 상속은 개발에 널리 사용되지만 부모 클래스에서 상속할 때 가끔 오류 문제가 발생할 수 있습니다. 이 문서에서는 부모 클래스에서 상속할 때 발생하는 일반적인 문제를 해결하는 데 중점을 두고 해당 코드 예제를 제공합니다. 질문 1: 시스템이 상위 클래스를 상속하는 과정에서 상위 클래스를 찾을 수 없습니다.

PHP 오류를 처리하는 방법: Calltoundefinefunction 문제? PHP를 사용하여 개발하는 과정에서 다양한 오류가 자주 발생합니다. 일반적인 오류 중 하나는 정의되지 않은 함수가 호출되었음을 의미하는 "Calltoundefinefunction"입니다. 이러한 종류의 오류로 인해 코드가 실패하고 개발자에게 문제가 발생할 수 있습니다. 이 문서에서는 이 오류를 처리하는 방법을 설명하고 몇 가지 코드 예제를 제공합니다. 기능이 맞는지 확인해보세요

PHP 오류: 정의되지 않은 상수 솔루션! PHP 프로그래밍에서는 정의되지 않은 오류가 지속적으로 발생하는 경우가 많습니다. 이 오류는 일반적으로 코드에 정의되지 않은 상수를 사용할 때 발생합니다. 이 글에서는 상수의 개념과 정의되지 않은 상수 문제를 해결하는 방법을 소개합니다. 먼저 상수가 무엇인지 이해해 봅시다. PHP에서 상수는 한번 정의되면 다시 변경할 수 없는 값입니다. 상수는 Define() 함수를 사용하여 정의됩니다. 다음은 간단한 예입니다: <?phpdefine("

PHP 오류가 보고된 코드 줄을 빠르게 찾는 방법은 무엇입니까? PHP 프로젝트를 개발할 때 다양한 오류 보고서를 자주 접하게 됩니다. 이러한 오류 보고서는 문제를 찾고 해결하는 데 매우 중요합니다. 그러나 때로는 오류 메시지가 충분히 자세하지 않을 수도 있습니다. 오류의 파일과 줄 번호만 알려주고 구체적인 오류 메시지는 알려주지 않습니다. 이로 인해 문제를 찾고 해결하는 데 어려움이 따릅니다. 이 기사에서는 PHP 오류가 보고된 특정 코드 줄을 빠르게 찾는 데 도움이 되는 몇 가지 방법을 소개합니다. 오류 보고 활성화 먼저 오류 보고가 활성화되어 있는지 확인해야 합니다. PHP 코드에는

PHP 오류 해결: 함수가 더 이상 사용되지 않습니다. PHP를 개발하거나 유지 관리하는 과정에서 이전 코드나 타사 라이브러리에 문제가 발생하는 경우가 많습니다. 그 중 하나는 함수가 더 이상 사용되지 않는다는 경고 또는 오류입니다. PHP는 버전을 업그레이드할 때 일반적으로 특정 기능을 더 이상 사용되지 않는 것으로 표시하고 후속 버전에서 해당 기능을 점차 제거하거나 교체합니다. 이는 개발자에게 동일한 기능을 달성하기 위해 보다 안정적이고 효율적인 방법을 사용하도록 상기시키기 위해 수행됩니다. 이 기사에서는 PHP 오류에서 함수가 쓸모없게 되는 문제를 해결하는 방법을 소개합니다.

PHP 오류 해결: 정의되지 않은 변수를 참조하려고 합니다. PHP 프로그래밍에서 "정의되지 않은 변수를 참조하려고 합니다"라는 일반적인 오류가 자주 발생합니다. 이 오류 메시지는 선언되거나 초기화되지 않은 변수가 코드에 사용되었음을 나타냅니다. 이 오류는 일반적으로 변수 이름의 철자 오류, 할당되지 않은 변수 또는 선언되지 않은 변수로 인해 발생합니다. PHP 엔진에서 이러한 오류가 발생하면 경고 메시지를 표시하고 프로그램 실행을 중단합니다. 아래에서는 합의를 더 잘 피하는 데 도움이 되는 몇 가지 일반적인 상황과 해결 방법을 소개합니다.
