Неправильно работает extends в PHP 7?

205
12 апреля 2017, 16:08

Недавно перешел на PHP7, в целом миграция прошла хорошо, за исключением того, что PHP не хочет видеть класс-родитель у потомков (ООП).

Есть директория, в которой находится список файлов-классов, некоторые классы базовые, некоторые наследуются через extends (например, class User_Activation extends User). Сборка осуществляется автоматически:

$includes_dir = opendir('./includes/core');
  while (($inc_file = readdir($includes_dir)) != false)
    if (strstr($inc_file,'.php')) include('./includes/core/'.$inc_file);

В директории файлы лежат в виде:

class_user.php
class_user_activation.php
...
class_user_gallery.php
...

Когда запускается скрипт, то выкидывает ошибку, что класс User не найден (не найден объект наследования), хотя он даже по порядку файла должен был уже загрузиться. В PHP 5 все работает как надо.

Если прописать вручную загрузку первым файла class_user.php, то все работает как надо.

В чем может быть проблема?

Answer 1
string readdir ([ resource $dir_handle ] )

Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.

Вы уверены, что в вашей ФС файлы хранятся именно в том порядке, как вам надо? Я бы на это не закладывался. Никогда.

И как правильно отметил @Lexx918, давно пора перейти на автозагрузку классов

READ ALSO
Чтение файла-устройства

Чтение файла-устройства

Возникла задача прочитать файл-устройствоДелаю так:

198
Программно изменить реестр через WinApi

Программно изменить реестр через WinApi

Здравствуйте! Скажу сразу, это проблемная для меня темаВ ветви HKEY_CURRENT_USER нужно изменить значение ColorizationGlassReflectionIntensity, находящееся в Software\\Microsoft\\Windows\\DWM

292
Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

283
Нарушение прав доступа при чтении

Нарушение прав доступа при чтении

Помогите, я не могу найти ошибку уже очень давно!

192