0

codeigniter コントローラーに ucfirst() 関数を追加しようとしているので、最初の大文字の文字列が返されます。何らかの理由で、解析エラーが発生し続けます。

解析エラー: 7 行目 (私の ucfirst がある行) で、構文エラー、予期しない '('、予期しない ',' または ';' in ... です。

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 に答える