我将我的Codeigniter从2.2.1升级到3.0.0。很多事情都被特别改变了。
CI 2.2.1和之前在system / core / Common.php中有如下函数:214行左右。
function &get_config($replace = array())
{
static $_config;
if (isset($_config))
{
return $_config[0];
}
这是扩展system / core / Input.php
的功能应用/核心/ MY_Input.php
Class MY_Input extends CI_Input
{
function _clean_input_keys($str, $fatal = true)
{
$config = &get_config('config');
if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i",
rawurlencode($str)))
{
exit('Disallowed Key Characters.');
}
// Clean UTF-8 if supported
if (UTF8_ENABLED === TRUE)
{
$str = $this->uni->clean_string($str);
}
return $str;
}
}
直到这里一切正常。升级到CI#system / core / Common.php后,将功能更改为:238行左右
function &get_config(Array $replace = array())
{
static $config;
if (empty($config))
{
我如何在MY_Input.php中匹配此函数的参数
$config = &get_config('config');
答案 0 :(得分:1)
v3代码中$ replace之前的'Array'一词强制执行参数的类型,这就是你得到错误的原因。
'config'不是该参数的有效值。删除它,你应该很高兴去。
$config = &get_config('config');
到
$config = &get_config('');
答案 1 :(得分:0)
试试这个
$config=array('db'=>'some value','someother'=>'value');
$config = &get_config($config); **// LINE 6**