miałem nadzieję, że jeśli miałbym zdefiniować stałe w osobnej przestrzeni nazw, jak:Automatyczne ładowanie stałych w PHP?
namespace config\database\mysql;
const HOST = 'localhost';
const USER = 'testusr';
const PASSWORD = 'testpwd';
const NAME = 'testdb';
że będę mógł korzystać __autoload
Aby automatycznie włączyć je:
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;
to jednak nie działa. __autoload
nie jest wywoływana dla stałej, tak jak jest z klasami, pozostawiając mnie z błędem Undefined constant
.
Jakiś sposób, w jaki mogę symulować klasę __autoload
dla stałych?
Dzięki! To wygląda obiecująco. Nie mam zamiaru owijać ich w klasy manekinów, ale wygląda na to, że działa. – Atli