Я обновляю свой Codeigniter с 2.2.1 до 3.0.0. Множество вещей было изменено espacially сессий.Override get_config (Codeigniter)
CI 2.2.1 и до этого эту функцию следовать в системе/ядро / common.php: Линия около 214.
function &get_config($replace = array())
{
static $_config;
if (isset($_config))
{
return $_config[0];
}
Это функция, которая расширяет систему/ядро / 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 # системы/ядра/common.php изменил функцию: Линия около 238
function &get_config(Array $replace = array())
{
static $config;
if (empty($config))
{
Как я мог соответствовать параметрам для этой функции в MY_Input.php
$config = &get_config('config');
вы предоставляете строку в то время как вы упомянули в функции, аргумент должен быть массивом. поэтому он дает вам ошибку. – john
@john Он отлично работал для CI 2.2.1. Почему не для CI 3? – Rocks
Я не знаю о CI, но я знаю, что если вы укажете тип аргумента в определении функции, тогда тип аргумента должен быть таким же в вызове функции. – john