我有这部分代码:
...
ini_set('max_execution_time', 300);
...
直到现在它一直有效。现在我收到此错误:
ini_set() expects parameter 2 to be string, integer given
发生了什么变化?可以由PHP版本引起吗?
答案 0 :(得分:4)
PHP实际上期望ini_set()
的两个参数均为string
类型,并返回一个string
:
ini_set(字符串$ varname,字符串$ newvalue):字符串
您可以在PHP manual on ini_set
中找到它。
如果您将strict_types
设置为
declare(strict_types=1);
然后,您必须将ini_set()
的值更改为
ini_set('max_execution_time', '300');
答案 1 :(得分:1)
不知道它如何为您工作。 Here是参考。第二个参数必须是字符串数据类型。
也许直到现在您仍在使用变量进行设置,而该变量以某种方式被强制转换为字符串?不确定。
无论如何,只需使用字符串而不是整数作为第二个参数:
ini_set('max_execution_time', '300');
你应该很好。
奇怪的是,刚才我注意到,由于整数正在服务器上运行,因此给出了第二个参数。
也Here,如果您使用“ ini_set”进行搜索,则该示例将第二个参数作为整数给出:
ini_set('assert.exception', 1);
奇怪的是为什么它对您不起作用。
答案 2 :(得分:0)
PHP接受PHP ini_set()中字符串形式的键值对。
ini_set("max_execution_time", "300");