5

I have this part of code:

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

Until now it worked. Now i am getting this error:

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

What has changed? Can it be caused by PHP version?

MakoBuk
  • 471
  • 1
  • 6
  • 15
  • Possible duplicate of [ini\_set, set\_time\_limit, (max\_execution\_time) - not working](https://stackoverflow.com/questions/1590441/ini-set-set-time-limit-max-execution-time-not-working) – Crou Sep 27 '19 at 12:23

3 Answers3

6

PHP actually expects both parameters of ini_set() to be of type string and returns a string:

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

You can find this in the PHP manual on ini_set.

If you have set strict_types with

declare(strict_types=1);

then you will have to change your ini_set() values to

ini_set('max_execution_time', '300');
digijay
  • 1,048
  • 3
  • 12
  • 23
1

Not sure how it was working for you. Here is the reference. Second parameter needs to be string data type.

Maybe you was using a variable to set it until now and that variable was somehow getting casted to string? not sure.

Anyways, just use string instead of an integer as second parameter:

ini_set('max_execution_time', '300');

and you should be good.

Weird enough, just now i noticed, giving second parameter as integer is working on my Server.

Also Here, if you search with "ini_set", the example is given with second parameter as integer:

ini_set('assert.exception', 1);

It is weird why its not working for you.

Learner
  • 9,004
  • 6
  • 35
  • 55
0

PHP accept the key value pair in string in PHP ini_set().

ini_set("max_execution_time", "300");
Dharman
  • 21,838
  • 18
  • 57
  • 107
Rahul Gupta
  • 743
  • 2
  • 11