在php 5.3中使用ucfirst()函数返回一个解析错误

时间:2013-03-14 13:58:06

标签: php codeigniter parsing ucfirst

我正在尝试在我的codeigniter控制器中添加一个ucfirst()函数,所以我将找回一个带有第一个大写字母的字符串。出于某种原因,我不断收到解析错误:

解析错误:语法错误,意外'(','期待','或';'在...第7行(我的ucfirst所在的行)。

尝试将ucfirst()更改为ucfirst(strtolower($ database))或更改ucwords($ database)返回相同的结果。

我的代码是:

defined('BASEPATH') OR exit('No direct script access allowed');

class Somecontroller extends CI_Controller {
    private $database = "some_database";
    private $model = ucfirst($this->database)."_model";
    ...
}

2 个答案:

答案 0 :(得分:4)

来自php doc

  

声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。

您应该在类构造函数

中初始化$model属性
public function __construct()
{
   // I guess you'll need to call parent constructor as well
   parent::__construct();
   $this->model = ucfirst($this->database) . '_model';
}

答案 1 :(得分:0)

您应该使用$ this->数据库并在构造函数中指定

类似的东西:

function __construct()
{
   $this->model = ucfirst($this->database) . "whatEver";
}