函数名中的CodeIgniter外来字符问题

时间:2014-04-07 05:18:33

标签: php codeigniter character-encoding

我正在开展一个土耳其项目,并且有正常的函数调用,例如:

$this->model_board->Board_Column_Info();

上面代码中的大写“i”会出现以下错误代码:

 [07-Apr-2014 08:11:22 Europe/Istanbul] PHP Fatal error:  Call to undefined method Model_board::Board_Column_Info() in /home/project/public_html/application/controllers/main.php on line 6396

如果您使用小写“i”运行相同的代码,则无任何问题

$this->model_board->Board_Column_info();

虽然它与问题无关,但我也会将代码发布到函数中:

function Board_Column_Info ( $board_column_id )
{

    $this->db->select('*');

    $this->db->from('board_column');

    $this->db->where('board_column_id', $board_column_id );


    $query = $this->db->get();

    if ( $query->num_rows() > 0 )
    {
        $row = $query->row_array();
        return $row;
    }
    else
    {
        return FALSE;
    }

}

也许它干扰了“ı”的土耳其特色。

i I lowercase and uppercase i
ı I lowercase and uppsercase ı

它只发生在一个项目中,所以我很困惑,不知道如何处理它。

我怀疑编码错误,我该怎么检查?

2 个答案:

答案 0 :(得分:1)

罪魁祸首:

setlocale(LC_ALL, 'tr_TR.UTF-8');

使用这个小(疯狂)代码会混淆你的所有例程和函数名称。

突然,函数名称Info()将不再起作用,你必须将其称为info(),因为资本我将被视为资本土耳其语ı(用大写字母时看起来完全相同)。

希望这有帮助。

答案 1 :(得分:0)

我想它不需要对土耳其字符做任何事情,它实际上是由你的方法定义的名称,我确定你的方法Board_Column_info()是用小写字母定义的' i',方法名称是区分大小写的,即它们必须在声明它们的相同情况下被调用,如果你想检查尝试将函数声明更改为Board_Column_Info(),那么它将为小写' i&#抛出致命错误39;