Мне не совсем понятен один момент с ООП. Если я использую абстрактный класс, и пытаюсь в него подгрузить сторонний класс (не extends), находящийся в другом файле и делаю это через __construct
, то мне выводится ошибка, Class 'Foo' not found in ..
. А вот если подключаюсь к файлу в нужном методе, то все ок. Просто выглядит не очень красиво, если использовать по 10 раз в одном файле подключение к одному и тому же файлу, для 10 разных методов. Возможно ли использовать одно подключение в __construct
-е?
Покажу на примере. Вот такой код выведет ошибку:
abstract class Name {
public function __construct () {
require_once 'Foo.php';
}
public function func1 () {
$foo = new Foo;
// ..
}
public function func2 () {
$foo = new Foo;
// ..
}
// и т.д.
}
А вот этот пример отлично отработает:
abstract class Name {
public function __construct () {
// ..
}
public function func1 () {
require_once 'Foo.php';
$foo = new Foo;
// ..
}
public function func2 () {
require_once 'Foo.php';
$foo = new Foo;
// ..
}
// и т.д.
}
Подскажите пожалуйста, в чем собственно причина?
Похоже дочерний класс должен вызывать функцию-конструктор родителя:
abstract class Name {
public function __construct () {
require_once 'Foo.php'
echo 'require_once called!';
}
public function func1 () {
$foo = new Foo;
}
public function func2 () {
$foo = new Foo;
}
}
class AName extends Name {
public function __construct () {
parent::__construct();
}
public function func1 () {
}
public function func2 () {
}
}
new AName(); //require_once called
Они вроде как оба возвращают ассоциативный массив В чем разница
Ребят, приветРаботаю с этим массивом и возник следующий вопрос
В Yii2(с ActiveRecord) я питаюсь добавить большой текст в БД но вернет такая ошибка