Я правильно понимаю, что функция 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. Как так?