PHP8 运行时配置

2023-09-12 14:05 更新

这些函数的行为受 php.ini 中的设置影响。

PHP 选项 / Info 配置选项
名字 默认 可修改范围 更新日志
assert.active "1" PHP_INI_ALL  
assert.bail "0" PHP_INI_ALL  
assert.warning "1" PHP_INI_ALL  
assert.callback NULL PHP_INI_ALL  
assert.quiet_eval "0" PHP_INI_ALL 从 PHP 8.0.0 移除。
assert.exception "1" PHP_INI_ALL 在 PHP 8.0.0 之前,默认是 "0"
enable_dl "1" PHP_INI_SYSTEM 本过时特性肯定会在未来被移除
max_execution_time "30" PHP_INI_ALL  
max_input_time "-1" PHP_INI_PERDIR  
max_input_nesting_level "64" PHP_INI_PERDIR  
max_input_vars 1000 PHP_INI_PERDIR  
zend.enable_gc "1" PHP_INI_ALL  

有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围

这是配置指令的简短说明。

assert.active bool

激活 assert() 断言评测。应该使用 zend.assertions 来控制 assert() 的行为。

assert.bail bool

失败的断言将中止脚本。

assert.warning bool

为每个失败的断言产生一条 PHP 警告信息。

assert.callback string

断言失败后要调用的回调函数。

assert.quiet_eval bool
警告

此功能自 PHP 8.0.0 起移除

在断言表达式执行时 error_reporting() 使用当前的设置。如果启用了,在执行时错误将不会被显示(隐式的 error_reporting(0))。如果禁用了,错误将根据 error_reporting() 的设置来显示。

assert.exception bool

在断言(assert)失败时产生 AssertionError 异常。

enable_dl bool

该指令允许开启或关闭使用 dl() 动态加载 PHP 模块。

关闭动态加载的主要原因是为了安全。通过动态加载,有可能忽略所有 open_basedir 限制。默认允许动态加载。

max_execution_time int

这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。这有助于防止写得不好的脚本占尽服务器资源。默认设置为 30。从命令行运行 PHP 时,默认设置为 0

在非 Windows 系统上,最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()。

你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。

max_input_time int

脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。它从接收所有数据到开始执行脚本进行测量的。默认设置为 -1,意味着使用 max_execution_time 的值做为默认值,如果不想限制,请设置为 0

max_input_nesting_level int

设置 输入变量 的最大允许嵌套的深度。(例如 $_GET$_POST

max_input_vars int

接受多少 输入的变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量)指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。如有超过指令指定数量的输入变量,将会导致 E_WARNING 的产生,更多的输入变量将会从请求中截断。

zend.enable_gc bool

启用或禁用循环引用记数收集器。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号