5

我有这部分代码:

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

直到现在它才起作用。现在我收到此错误:

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

发生了什么变化?会不会是PHP版本造成的?

4

3 回答 3

7

PHP 实际上期望 的两个参数都是ini_set()类型string并返回一个string

ini_set ( 字符串 $varname , 字符串 $newvalue ) : 字符串

您可以在 .php 上的PHP 手册ini_set中找到它。

如果你设置strict_types

declare(strict_types=1);

那么你将不得不改变你的ini_set()价值观

ini_set('max_execution_time', '300');
于 2019-09-27T12:26:31.553 回答
2

不知道它是如何为你工作的。是参考。第二个参数需要是字符串数据类型。

也许直到现在您一直在使用一个变量来设置它,并且该变量以某种方式被强制转换为字符串?没有把握。

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

ini_set('max_execution_time', '300');

你应该很好。

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

同样在这里,如果您使用“ini_set”进行搜索,则以第二个参数作为整数给出示例:

ini_set('assert.exception', 1);

奇怪的是为什么它不适合你。

于 2019-09-27T12:22:55.770 回答
1

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

ini_set("max_execution_time", "300");
于 2019-09-27T13:06:16.163 回答