1

我在codeigniter中开发。我的程序会自动创建它的数据库,所以我为每个表创建一个 createScheme() 方法。我尝试像这样调用所有这些方法:

public function createDB()
{
    $tables = array('user', 'manufacturer', 'device');

    foreach ($tables as $i => $table) {
        $this->load->library($table);
        $this->{$table}::createScheme();
    }

}

这是创建一个错误:

解析错误:语法错误,第 22 行 /var/www/clients/client0/web79/web/application/controllers/welcome.php 中的意外 T_PAAMAYIM_NEKUDOTAYIM

我该怎么做?

4

2 回答 2

2

尝试

$this->{$table}->createScheme();

另请参阅范围解析运算符

于 2012-09-07T08:12:02.870 回答
2

T_PAAMAYIM_NEKUDOTAYIM 是希伯来语,它指的是 PHP 的范围解析运算符(“::”)。如果您收到此消息,则意味着 PHP 看到了一个类名,并希望您使用范围解析运算符访问它。

所以 createScheme() 不是静态的,而是普通的类方法。

利用

$this->{$table}->createScheme();
于 2012-09-07T08:13:42.480 回答