Создание экземпляра объекта с использованием переменной в PHP 7 - PullRequest
0 голосов
/ 17 июня 2020

На моем локальном компьютере под управлением Win 10, PHP 7.4 приведенный ниже код работает, но не на моем производственном сервере, хотя у меня одинаковая PHP версия на обоих.

<?php
use controller\Admin;

$ct_name = 'controller'. DIRECTORY_SEPARATOR . ucfirst($this->url[0]);

$controller = new $ct_name();

I иногда пробовал что-то go, что сработало, но не могу вспомнить, что делал.

1 Ответ

0 голосов
/ 17 июня 2020

Похоже, проблема в вашем DIRECTORY_SEPARATOR, если только вы не на Windows, DIRECTORY_SEPARATOR - это прямой sla sh, где разделителем пространства имен должен быть обратный sla sh.

Я быстро отредактировал ваш код, чтобы вы могли попробовать:

<?php
use controller\Admin;

$ct_name = 'controller\\' . ucfirst($this->url[0]);

$controller = new $ct_name();

Обратите внимание, что при использовании обратных косых черт в строках почти всегда нужно экранировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...