Übergeben eines Arrays von Parametern an den Objektkonstruktor

8

Wie kann ich einen Objektkonstruktor aufrufen, der ein Array von Parametern so übergibt, dass er folgendes hat:

%Vor%

Ich kann

anrufen %Vor%

unter Berücksichtigung, dass ich nicht weiß, wie viele Parameter im Array gesetzt werden können. Gibt es etwas wie call_object('Abc', array($param1, $param2)) ?

    
Shoe 16.12.2011, 14:14
quelle

4 Antworten

6

Der beste Weg besteht darin, ein Array oder Objekt zu verwenden, das die Argumente speichert und das Array / Objekt einfach weitergibt

Ein anderer Weg wäre die Verwendung von Reflection ( Ссылка ) mit newInstanceArgs ( Ссылка )

    
DarkDevine 16.12.2011, 14:17
quelle
10

Wie wäre es mit ... (Splat-Operator)?

%Vor%

PHP 5.6 ist erforderlich.

    
augusthur 29.12.2015 01:08
quelle
4

Das Ideale besteht darin, Ihren Konstruktor so zu definieren, dass er ein Array aufnimmt.

Wenn Sie das nicht können, gibt es eine mögliche Problemumgehung. Wenn all -Parameter für den Konstruktor optional sind, könnten Sie etwas mit call_user_func_array :

tun %Vor%

Dies führt dazu, dass Ihr Konstruktor zweimal ausgeführt wird: einmal ohne Parameter und einmal mit denen im Array. Sie müssen entscheiden, ob dies für Ihre Anwendung geeignet ist.

    
lonesomeday 16.12.2011 14:19
quelle
2

Angenommen, Sie können die Konstruktoren Ihrer Objekte ändern, ist ein Muster wie dieses nicht ungewöhnlich, erfordert jedoch assoziative Arrays als Eingabe:

%Vor%     
Michael Berkowski 16.12.2011 14:18
quelle

Tags und Links