PHP-传递给foo的参数1必须是Bar的实例,给定字符串-如何自动调用ctor

PHP-传递给foo的参数1必须是Bar的实例,给定字符串-如何自动调用ctor,php,casting,Php,Casting,我有以下代码: class Bar { public function __construct($s){ } public function __toString(){ return "something"; } } function foo(Bar $b){ } foo("xx"); 是否有可能隐式调用Barctor,例如在不显式调用newbar(“xx”)的情况下将“string”转换为Bar?我可以使用foo中的$b实例作为字符串,因为\uu to

我有以下代码:

class Bar {
   public function __construct($s){
   }

   public function __toString(){
    return "something";
   }
}

function foo(Bar $b){

}

foo("xx");

是否有可能隐式调用
Bar
ctor,例如在不显式调用
newbar(“xx”)
的情况下将“string”转换为
Bar
?我可以使用foo中的
$b
实例作为字符串,因为
\uu toString
方法。我只需要在之前做一些处理,不想到处写
newbar

类型提示的目的就是为了避免这种情况。如果您喜欢松散类型的函数调用,只需省略它,并使用
函数foo($b){}
。类型提示确保您获得的数据是您期望的类型。如果希望函数将任何数据强制转换为所需的类型,请在自己的代码中执行
$b=new Bar($b)