@Shv_sergey

Как работает spl_autoload?

Я правильно понимаю, что функция spl_autoload, по умолчанию, должна искать классы по include-путям?
Php.net:
По умолчанию функция будет искать файлы с расширениями .inc и .php. по всем include-путям, где может располагаться искомый класс.


Тогда как работает этот код?
./Human.php
<?php
class Human {
    private $name;
    public function setName($name) {
        $this->name = $name;
    }
    public function sayName() {
        return $this->name;
    }
}

./index.php
<?php
spl_autoload_register();

$human = new Human();

$human->setName('Иван');
echo $human->sayName().'<br>';

var_dump(get_include_path());


Результат:
Иван
string(46) ".:/Applications/MAMP/bin/php/php7.1.20/lib/php"

То есть include-путь не ведет в папку с проектом, но функция spl_autoload_register все-равно находит класс Human. Как так?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@Arik
пути разбиты через ":" и первый путь у вас текущая папка (точка)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы