В редких случаях бывает нужно создавать объект по имени класса в PHP . Используется это нечасто, но когда это требуется, то данная возможность отлично сказывается и на производительности, и на количестве кода. Давайте с Вами разберём, как создать объект по имени класса , и я покажу пример, где я лично отлично сэконо...
В редких случаях бывает нужно создавать объект по имени класса в PHP. Используется это нечасто, но когда это требуется, то данная возможность отлично сказывается и на производительности, и на количестве кода. Давайте с Вами разберём, как создать объект по имени класса, и я покажу пример, где я лично отлично сэкономил, используя данную возможность в PHP.
Для начала сразу привожу код:
<?php
$class = "Point";
$obj = new $class();
?>
После его выполнения будет создан объект класса Point. Казалось бы, зачем это нужно? Привожу кусок кода из личной практики (он сильно упрощён, но самую суть я оставил):
<?php
$view = $_GET["view"];
switch ($view) {
case "pagea":
$content = new PageAContent($db);
break;
case "pageb":
$content = new PageBContent($db);
break;
case "pagec":
$content = new PageCContent($db);
break;
// Далее ещё пару десятков подобного дублирования
?>
А вот теперь посмотрите, как я сократил код с использованием возможности создания объекта по имени класса в PHP:
<?php
$class = $_GET["view"]."Content";
$content = new $class();
?>
Более того, при добавлении новой ключевой страницы на сайт мне не надо снова лезть в этот файл и добавлять 101-й блок.
Вот так, на первый взгляд, бесполезная возможность, отлично помогла оптимизировать работу движка и упростила дальнейшее сопровождение.
