Как исключить подключение файла? Здравствуйте, есть класс для работы с базой данныхdb = new mysqli(HOST, USER, PASS, DATABASE);
if(!$this->db){
echo "Невозможно установить соединение с базой данныхКод ошибки:";
exit(mysql_error());
}
else
{
mysqli_set_charset($this->db, 'utf8');
}
}
}
И есть функция __autoloaddefine('DIRSEP', DIRECTORY_SEPARATOR);
function __autoload($class_name) {
$class_peaces = explode('\\', $class_name);
switch ($class_peaces[0]) {
case 'model':
$dirpath = ROOT . DIRSEP . implode(DIRSEP, $class_peaces) . '.php';
require_once $dirpath;
break;
}
}
Проблема в том что при подключении файла с классом Database($db = new model\Database();)
пытается автоматически подключить также класс mysqli.php
Warning: require_once(W:/domains/testPHPoop\model\mysqli.php): failed to open stream: No such file or directory in W:\domains\testPHPoop\functions.php on line 15
Fatal error: require_once(): Failed opening required 'W:/domains/testPHPoop\model\mysqli.php' (include_path='.;w:/modules/php/PHP-5.4;w:/modules/php/PHP-5.4/PEAR/pear') in W:\domains\testPHPoop\functions.php on line 15
Как избежать подключения этого несуществующего файла?
Спасибо

21 Авг 2019 в 07:01
149 +1
0
Ответы
1

Для исключения подключения файла mysqli.php можно использовать условие в функции __autoload, чтобы проверить, что класс, который пытается быть загружен, не является классом mysqli. Вот как это можно сделать:

function __autoload($class_name) {
$class_peaces = explode('\\', $class_name);
switch ($class_peaces[0]) {
case 'model':
if ($class_peaces[1] !== 'Database') { // проверяем, не является ли класс mysqli
$dirpath = ROOT . DIRSEP . implode(DIRSEP, $class_peaces) . '.php';
require_once $dirpath;
}
break;
}
}

Таким образом, если класс, который пытается быть загружен, не является классом Database, то файл с этим классом будет загружен без попытки загрузить файл mysqli.php.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 091 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир