Как динамически использовать имена классов - PullRequest
0 голосов
/ 14 января 2019

Как я могу создать объект класса в php, поворот средней части изменяемый согласно запросу?

$myObj =  new Application_Model_XYZtable();

XYZ - это изменяемая часть, которая зависит от запроса пользователя.

Я пробовал это.

$myObj =  new Application_Model_ . $XYZ . table(); 

но не работает.

1 Ответ

0 голосов
/ 14 января 2019

Используйте строку для определения полного имени класса.

class_exists() может использоваться для определения, существует ли класс.

Например:

class testABCtest
{

}

class testDEFtest
{

}

$abc = 'abc';
$def = 'def';

$myclass1 = 'test' . $abc . 'test';
$myclass2 = 'test' . $def . 'test';
$myclass3 = 'IDontExists';

$obj1 = new $myclass1();
//          ^-------^--------+
$obj2 = new $myclass2(); //  +----Notice the whole names being variables (string)
//          ^-------^--------+
if (class_exists($myclass3))
{
    $obj3 = new $myclass3();
    var_dump($obj3);
}
else
    var_dump($myclass3 . " does not exist.");
var_dump($obj1, $obj2);

Выход

C:\wamp64\www\New folder\test11.php:30:string 'IDontExists does not exist.' (length=26)
C:\wamp64\www\New folder\test11.php:33:
object(testABCtest)[1]
C:\wamp64\www\New folder\test11.php:33:
object(testDEFtest)[2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...