使用 ini_set() 时新值的正确值类型是什么?

What is the proper value type of the new value when using ini_set()?

我将以"display_errors"为例:

ini_set('display_errors', 1);// int
ini_set('display_errors', '1');// string
ini_set('display_errors', 'on');// string
ini_set('display_errors', true);// boolean

我知道以上所有方法都一样。我只是想知道 最合适的 是什么,如果有人知道的话。

必须与您在php.ini文件中设置的相同。来自文档:

string ini_set ( string $varname , string $newvalue )

所以这意味着您可以为 $newvalue 使用任何字符串,这将是 最合适的 方式。但通常我设置为(int) 1

参考:http://php.net/manual/en/function.ini-set.php

string ini_set ( string $varname , string $newvalue )

所以你必须为 newValue 使用字符串

例如:

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

在 php.net 上,语法如下所示:

string ini_set(string $varname, string $newvalue)

所有参数都应该是string。在 php.ini 文件中,所有布尔值显示为 OnOff。以下方案应该是最合适的方案:

ini_set('display_errors', 'On');
ini_set('display_errors', 'Off');

在配置文件的文档中可以找到以下部分:

Boolean values can be set to either:
true, on, yes or false, off, no, none

http://php.net/manual/en/configuration.file.php

ini_get 上,return 值是一个字符串。文档说:

A boolean ini value of off will be returned as an empty string or "0" while a boolean ini value of on will be returned as "1". The function can also return the literal string of INI value.

http://php.net/manual/en/function.ini-get.php

ini_get的return值和ini_set的值必须是字符串!