PHP - ini_set() 期望参数 2 为字符串,给定整数

PHP - ini_set() expects parameter 2 to be string, integer given

我有这部分代码:

...
ini_set('max_execution_time', 300);
...

直到现在它都有效。现在我收到这个错误:

ini_set() expects parameter 2 to be string, integer given

发生了什么变化?会不会是PHP版本导致的?

不确定它是如何为您工作的。 Here 是参考。第二个参数需要是字符串数据类型。

也许您之前一直在使用一个变量来设置它,而该变量不知何故被强制转换为字符串?不确定。

无论如何,只需使用字符串而不是整数作为第二个参数:

ini_set('max_execution_time', '300');

你应该很好。

很奇怪,刚才我注意到,将第二个参数作为整数在我的服务器上工作。

还有Here,如果你用"ini_set"搜索,例子给出第二个参数为整数:

ini_set('assert.exception', 1);

很奇怪为什么它对你不起作用。

PHP 实际上期望 ini_set() 的两个参数都是 string 和 returns 类型 string:

ini_set ( string $varname , string $newvalue ) : string

您可以在 PHP manual on ini_set 中找到它。

如果您已将 strict_types 设置为

declare(strict_types=1);

那么您必须将 ini_set() 值更改为

ini_set('max_execution_time', '300');

PHP 接受字符串中的键值对 PHP ini_set().

ini_set("max_execution_time", "300");