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

2.7k views Asked by At

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?

3

There are 3 answers

1
digijay On BEST ANSWER

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');
2
Abhay Maurya On

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.

1
Rahul Gupta On

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

ini_set("max_execution_time", "300");