给定以下接口:
interface ISoapInterface {
public static function registerSoapTypes( &$wsdl );
public static function registerSoapOperations( &$server );
}
以及以下代码:
$soapProvider = array( "FilePool", "UserList" );
foreach( $soapProvider as $provider ) {
call_user_func( array( $provider, "registerSoapTypes" ), &$server->wsdl );
call_user_func( array( $provider, "registerSoapOperations" ), &$server );
}
FilePool
和
UserList
两实施
ISoapInterface
.
PHP会抱怨foreach中的两个调用,它们指出:
已弃用按引用传递的调用时间
所以我查了那条信息,
the documentation
似乎很清楚如何解决这个问题。从实际调用中删除和号。
所以我把代码改成这样:
$soapProvider = array( "FilePool", "UserList" );
foreach( $soapProvider as $provider ) {
call_user_func( array( $provider, "registerSoapTypes" ), $server->wsdl );
call_user_func( array( $provider, "registerSoapOperations" ), $server );
}
现在PHP抱怨
FilePool的参数1:应引用RegisterSoapypes,给定值
FilePool的参数1:应引用RegisterSoapOperations,并给定值
除此之外,功能现在已被破坏。所以这显然不是解决办法。