Php类类型提示不起作用?

Php类类型提示不起作用?,php,Php,守则: public function __construct(\Illuminate\Container\Container $app, RuleSetInterface $rules) { $this->app = $app; var_dump(is_null($rules)); var_dump($rules instanceof RuleSetInterface); exit(); $this->rules = $rules; }

守则:

public function __construct(\Illuminate\Container\Container $app, RuleSetInterface $rules)
{
    $this->app   = $app;
    var_dump(is_null($rules));
    var_dump($rules instanceof RuleSetInterface);
    exit();
    $this->rules = $rules;
}

// This how it is called:
$form->setValidatorResolver(new IlluminateValidatorResolver($app, $form));
输出:

boolean false
string '...\SubscriptionForm' (length=36)
boolean false
下面是SubscriptionForm类的定义方式:

class SubscriptionForm extends AddressForm
class AddressForm extends Form
class Form
正如您所看到的,这些都没有实现接口,所以var_dump($rules instanceof RuleSetInterface);显示了真相,但此代码应该会导致致命错误

我很确定PHP抛出了一个异常,表示
$rules
属于意外类型,应为RuleSetInterface。我错过什么了吗


PHP版本5.6.14-0+deb8u1

正常,找到原因。是自定义错误处理程序抑制了我预期的致命错误。

如何调用构造函数?能否提供作为第二个参数传递的代码和确切值?这是用拉威尔吗?然后可能添加那个标记…你能告诉我们你是如何调用这个构造函数的吗?另外,如果你也调用var_dump(get_class($rules)),你会得到什么?我已经修改了这个问题。这不是Laravel,只是使用了一些组件。