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

evi*_*iko 6 php ini

我将使用"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
Run Code Online (Sandbox Code Playgroud)

我知道以上所有内容都是一样的.如果有人知道,我只是想知道什么是最合适的.

Seb*_*sch 5

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

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

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

ini_set('display_errors', 'On');
ini_set('display_errors', 'Off');
Run Code Online (Sandbox Code Playgroud)

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

布尔值可以设置为:
true、on、yes false、off、no、none

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

返回值是ini_get一个字符串。文档说:

off 的布尔 ini 值将作为空字符串或“0”返回,而 on 的布尔 ini 值将作为“1”返回。该函数还可以返回 INI 值的文字字符串。

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

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


Akh*_*yil 2

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

string ini_set ( string $varname , string $newvalue )
Run Code Online (Sandbox Code Playgroud)

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

例如:

<?php
echo ini_get('display_errors');

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

echo ini_get('display_errors');
?>
Run Code Online (Sandbox Code Playgroud)