По сути, у вас нет правильного пути, и include
позволит вам продолжить, если файл не существует.
Если вы включаете или запрашиваете файл, если указанный вами путь начинается с/
или \
, тогда PHP будет рассматривать его как путь от корня текущей файловой системы.Когда вы указываете путь, который не начинается с одного из них, PHP думает, что это относительный путь, он попытается угадать, какой файл включить, основываясь на том, где находится текущий файл и другие каталоги, о которых он знает.
Чтобы исправить это, вы, вероятно, захотите сделать следующее:
require_once __DIR__.'/folder/class.my-class.php';
См. Документы по include
, include_once
, а также __DIR__
.
Рекомендация:
При включении файла следует стараться использовать require_once
, когда это возможно.Если это файл, который, как вы знаете, может быть включен несколько раз, тогда вы можете использовать require
.Если это файл, который можно пропустить, если его по какой-либо причине не существует, то вы можете использовать include_once
.Если файл может быть и тем и другим, только тогда вы должны использовать include
.
Однако, как опытный программист, я также могу сказать вам, что если вы используете include_once
или include
, вы делаете что-тонеправильно и должен проверять, существует ли файл, прежде чем пытаться слепо включить его.
Кроме того, я настоятельно рекомендую всегда активировать приведенный ниже код.Это поможет вам выявить критические ошибки до того, как у них появится шанс действительно сломаться.Или, по крайней мере, дать вам лучшее понимание того, почему что-то сломалось.
ini_set('display_errors', '1');
error_reporting(-1);