0

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

2 回答 2

4

来自php 文档

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

$model您应该在类构造函数中初始化属性

public function __construct()
{
   // I guess you'll need to call parent constructor as well
   parent::__construct();
   $this->model = ucfirst($this->database) . '_model';
}
于 2013-03-14T13:59:46.063 回答
0

您应该使用 $this->database 并在构造函数中分配

就像是:

function __construct()
{
   $this->model = ucfirst($this->database) . "whatEver";
}
于 2013-03-14T14:00:22.057 回答