一:配置文件(php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。
二:Note that the CLI version of PHP does not appear to take into account any php.ini configuration file. As such, something like a max_execution_time limit setting you may think is being applied is actually not being used, and instead defaulting to 0 (which is unlimited).
三:PHP 运行于 Apache 模块方式
当使用 PHP 作为 Apache 模块时,也可以用 Apache 的配置文件(例如 httpd.conf)和 .htaccess文件中的指令来修改 PHP 的配置设定。需要有“AllowOverride Options”或“AllowOverride All”权限才可以。
有几个 Apache 指令可以使用户在 Apache 配置文件内部修改 PHP 的配置。哪些指令属于 PHP_INI_ALL
, PHP_INI_PERDIR
或 PHP_INI_SYSTEM
中的哪一个,请参考附录中的 php.ini 配置选项列表。
四:PHP 常量不存在于 PHP 之外。例如在 httpd.conf 中不能使用 PHP 常量如 E_ALL
或 E_NOTICE
来设定 error_reporting指令,因为其无意义,实际等于 0。应该用相应的掩码值来替代。这些常量可以在 php.ini 中使用。
五:
<?php
// You can use isset or is_null for $_SERVER[‘FCGI_SERVER_VERSION‘]
function isFastCGI () {
return !is_null($_SERVER[‘FCGI_SERVER_VERSION‘]);
}
?>
六:在PHP 5之中,提供了一个新的错误级别 E_STRICT
。 因为 E_STRICT
并不包含在 E_ALL
之中,你必须明确启用才能显示这个类别的错误信息。在开发阶段启用 E_STRICT
会有一些好处。严格的信息将帮助你使用最新和最好的建议的方法来编写代码,例如它会警告你使用了将被废弃的函数。
七:尽管 display_errors 也可以在运行时设置 (使用 ini_set() ), 但是脚本出现致命错误时任何运行时的设置都是无效的。 因为在这种情况下预期运行的操作不会被执行。
display_startup_errors
boolean
即使 display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外,将 display_startup_errors 设置为关闭。
例如:
error_reporting(E_ALL);
ini_set(‘display_errors‘,‘Off‘);
echo 234/0
exit;
这样仍然会报错:Parse error: syntax error, unexpected T_EXIT, expecting ‘,‘ or ‘;‘