我正在尝试在我的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";
...
}
答案 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";
}