В редких случаях бывает нужно создавать объект по имени класса в PHP . Используется это нечасто, но когда это требуется, то данная возможность отлично сказывается и на производительности, и на количестве кода. Давайте с Вами разберём, как создать объект по имени класса , и я покажу пример, где я лично отлично сэконо...

Как создать объект по имени класса в 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-й блок.

Вот так, на первый взгляд, бесполезная возможность, отлично помогла оптимизировать работу движка и упростила дальнейшее сопровождение.