Я надеялся, что если бы я определить константы в отдельном пространстве имен, например:Автозагрузка констант в PHP?
namespace config\database\mysql;
const HOST = 'localhost';
const USER = 'testusr';
const PASSWORD = 'testpwd';
const NAME = 'testdb';
То, что я мог бы использовать __autoload
для автоматического включения их:
function __autoload($className)
{
echo "Autoload: {$className}\n";
$class_file = str_replace('\\', '/', $className) . ".php";
if(file_exists($class_file)) {
include $class_file;
}
}
echo config\database\mysql\HOST;
В этом, однако, не работает. __autoload
не вызывается для константы, как и для классов, оставляя мне ошибку Undefined constant
.
Какой-то способ, которым я могу моделировать класс __autoload
для констант?
Спасибо! Это выглядит многообещающе. Я не хочу устраивать их в фиктивных классах, но, похоже, это работает. – Atli