使用带有字符串的变量进行新 class 初始化

Using variable with string for new class initialization

我需要用构造函数调用初始化新的 class 安全。

工作方式:

$paymentPortal = new Safe($order);

它没有的方式:

$portal = 'Safe';
$paymentPortal = new $portal($order);

我收到错误:

PHP Fatal error:  Uncaught Error: Class 'Safe' not found in ...

有没有办法动态调用class初始化? 如果它很重要,我正在使用 Phalcon 框架..

命名空间呢?如果您使用的是 IDE,它可能已经删除了命名空间。检查一下。

此致

使用基于字符串的创建时,必须使用 class 的完全限定命名空间,而不考虑本地命名空间。

use My\Stuff;
$o = new Stuff();
$name = ‘My\Stuff’;
$o = new $name();
$name = Stuff::class;
$o = new $name();