CrashX
В прошлом XSiteCMS
- Регистрация
- 6 Июн 2008
- Сообщения
- 681
- Реакции
- 114
- Автор темы
- #1
Создание динамических переменных в классе
собственно реализовал класс подгрузки классов, ранее было так
теперь сделал так
+ в этом случае я не думаю больше о том что нужно загрузить класс, если его нет он сам его загрузит, что избавляет меня от лишнего кода
вопрос в другом
насколько безопасна конструкция return $this->$name;
или как можно иначе создать пеменную с нужным именем в классе, объявлять сверху нельзя, тк тогда не будет работать метод __get
собственно реализовал класс подгрузки классов, ранее было так
Код:
class Engine {
var $version = 0.01;
var $debug = 'debug';
function extend($object=null, $extend=null) {
if (!is_object($object)):
require_once(CLASSES_DIR . $object . ".php");
switch ($object):
case "db": $this->db = new DB();
break;
case "debug": $this->debug = new Debug();
break;
****
вызов где угодно
$engine->extend($engine->debug); // загрузится класс отладки
теперь сделал так
Код:
class Engine {
private function __get($name) {
$this->extend($name);
return $this->$name;
}
private function extend($object=null, $extend=null) {
if (!is_object($object)):
require_once(CLASSES_DIR . $object . ".php");
switch ($object):
case "db": $this->db = new DB();
break;
case "debug": $this->debug = new Debug();
****
вопрос в другом
насколько безопасна конструкция return $this->$name;
или как можно иначе создать пеменную с нужным именем в классе, объявлять сверху нельзя, тк тогда не будет работать метод __get