我有 PHP 代码,它传递一个参数User::class,然后用new $p.
但我还需要能够向它传递一个查询实例......一个具体的实例,当然,它也是一个对象......它是一个类的成员。
因此,如何检测变量的值是否是使用::class命名法创建的?
一点点单线建议一个答案:
$ php -r 'class foo {}; print gettype(foo::class);'
string
这个假设正确吗?对象实例(例如查询)是类型object,而::class构造是string?我只是回答了我自己的问题吗?
为了澄清,我的代码想要这样做:
if (gettype($q) == 'string') {
$query = new $q(); // must be '::class' (TRUE in my situation tho' not generally)
} else { // (so, the only other possibility in my case is 'object')
$query = $q; // existing object instance
}
...在我的特殊情况下,我知道参数将始终是一个或另一个。我不需要一个通用的解决方案。
德玛西亚99
互换的青春
一只斗牛犬
繁花如伊