Можно ли расширить CI_Controller / CI_Model из stdClass - PullRequest
0 голосов
/ 27 ноября 2018

Я инициализирую класс, используя stdClass, например:

$Upload = new stdClass;
  1. Возможно ли расширить контроллер / модель для этого класса?
  2. Возможно ли иметь конструкциюдля этого класса?

Я хотел иметь контроллер или модель для загрузки, если это возможно.Причина, по которой я хочу, заключается в том, что у меня есть это в php файле, который я создал, и в этом файле есть функция.И в зависимости от функции я хочу создать различные stdClass для своих целей.

1 Ответ

0 голосов
/ 27 ноября 2018

stdClass - это предопределенный class, встроенный в PHP.Это по сути пустой объект.Он также используется для приведения типов к объекту.Так что нет, у него не может быть конструктора.

Классы CodeIgniter CI_Controller и CI_Model уже определены, поэтому вы не можете создать «контроллер» или «модель» путем расширения stdClass.Но, возможно, я неправильно понимаю ваш вопрос.

Вы можете использовать stdClass в любом месте модели или контроллера и легко добавлять к нему свойства.

// create an instance of stdClass
$Upload = new stdClass;
// add a "name" property
$Upload->name = "foo";
// add a "title" property
$Upload->title = "Bar";

echo $Upload->name;  //outputs foo

Вышеприведенное может быть проще создатьпутем типизации массива

$upload = (object) ['name'=>'foo', 'title'=>'bar'];
echo $upload->name;  //outputs foo
...