PHP Call-time pass-by-reference kaçınılmaz?

0 Cevap php

Aşağıdaki arayüz Verilen:

interface ISoapInterface {
  public static function registerSoapTypes( &$wsdl );
  public static function registerSoapOperations( &$server );
}

Ve aşağıdaki kodu:

$soapProvider = array( "FilePool", "UserList" );
foreach( $soapProvider as $provider ) {
  call_user_func( array( $provider, "registerSoapTypes" ), &$server->wsdl );
  call_user_func( array( $provider, "registerSoapOperations" ), &$server );
}

FilePool ve UserList uygulanması hem ISoapInterface.

PHP belirten foreach içindeki iki çağrıları hakkında şikayet edecek:

Çağrı-time pass-by-reference onaylanmaz

So I looked that message up, and the documentation seems quite clear on how to resolve this. Removing the ampersand from the actual call.
So I changed my code to look like this:

$soapProvider = array( "FilePool", "UserList" );
foreach( $soapProvider as $provider ) {
  call_user_func( array( $provider, "registerSoapTypes" ), $server->wsdl );
  call_user_func( array( $provider, "registerSoapOperations" ), $server );
}

Şimdi PHP şikayet

Parameter 1 to FilePool::registerSoapTypes expected to be reference, value given
Parameter 1 to FilePool::registerSoapOperations expected to be reference, value given

Buna ek olarak, fonksiyonellik şimdi bozuldu. Yani bu tabii ki çözüm olamaz.

0 Cevap