我已经对此进行了一些谷歌搜索,似乎无法找到很多帮助。但是,我想知道是否有一种方法可以检查函数中的参数的多个实例类型,因此要检查它是否是User模型的实例或其他模型,例如它是否是其中之一然后允许它通过。如果没有,抛出错误。我正在使用PHP和Laravel。
这里的用例是我将数据库从SQL迁移到Mongo,因此在过渡期间我会有两个用户模型(User
和MongoUser
)并且我想要检查每个参数以确定参数是否是某种形式的用户实例。
public function setTo(User $user)
{
$this->user()->associate($user);
return $this;
}
最后,我可以复制这些功能,但这似乎是不必要的重复。而且我不想完全删除实例检查。
我想知道是否有办法实现这一目标?如果没有,我有兴趣听听人们对最佳处理方式的看法。
谢谢!
答案 0 :(得分:1)
在这里你可以做什么:
让两个类(User和MongoUser)扩展一个基类(UserBase ??)并检查它。
tf.import_graph_def
另一种可能性是省略方法声明中的限制并进行手动测试:
<?php
class base {
}
class A extends base {
}
class B extends base {
}
class C {
}
function test(base $x) {
var_dump($x);
}
test(new base()); // good
test(new A()); // good
test(new B()); // good
test(new C()); // throws error because class C doesn't extend base class