Я занимаюсь разработкой PHP в оснастке CodeIgniter. Я создал свой собственный класс Model, который расширяет и отменяет стандартную кодировку. Который находится чуть ниже:PHP Наследование объектов и переопределение метода
<?php
class MY_Model extends CI_Model
{
public $table;
public function __construct()
{
parent::__construct();
$this->table = get_class($this);
$this->fields = $this->db->field_data($this->table);
}
}
Я тогда сделал модель для управления языками в базе данных, код ниже. Изнутри Language_model, если я эхо $this->table
, я получаю «Language_model», который я хочу. Но ошибки кода в родительском запуске «$this->db->field_data($this->table)
» в качестве имени таблицы недопустимы («MY_Model» недействителен). Код никогда не доходит до выполнения var_dump в дочернем элементе из-за ошибки. Почему не "$this->db->field_data($this->table)
" также с помощью "Language_model" в качестве значения для $this->table?
Запуск PHP 5.3.9
class Language_model extends MY_Model {
function __construct()
{
parent::__construct();
var_dump($this->fields);
}
}