Как исключить подключение файла? Здравствуйте, есть класс для работы с базой данных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
166 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир