PHP: Erstellen von Objekt-Variablen?
Also ich habe zum Beispiel diesen code:
class Object{
public $tedi;
public $bear;
...some other code ...
}
Nun, wie Sie sehen können, gibt es public-Variablen innerhalb dieser Klasse. Was ich möchte zu tun ist, um diese Variablen in einer dynamischen Art und Weise, mit einer Funktion so etwas wie:
private function create_object_vars(){
//The Array what contains the variables
$vars = array("tedi", "bear");
foreach($vars as $var){
//Push the variables to the Object as Public
public $this->$var;
}
}
Also wie soll ich das erstellen von öffentlichen Variablen in einer dynamischen Art und Weise?
Was ist Ihre Frage?
Sorry @Pekka , ich dachte, es ist klar, aber ich legte es auf das Ende 🙂
Aus Neugier, warum machst du das?
Sorry @Pekka , ich dachte, es ist klar, aber ich legte es auf das Ende 🙂
Aus Neugier, warum machst du das?
InformationsquelleAutor Adam | 2010-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können dies tun.
Bist du ziemlich viel richtig - dies sollte es tun:
Beachten Sie, dass die macht sich variable Benennung von Variablen, die können tun, einige verrückte und gefährliche Dinge!
Gemäß der Kommentare, die Mitglieder wie folgt erstellt werden öffentlich sein - ich bin sicher, es gibt eine Möglichkeit zu schaffen, geschützte/private Variablen, aber es ist wahrscheinlich nicht einfach (zB könnte man es über die C Zend-API-Erweiterung).
aber in deinem snippet, es ist nicht öffentlich , wird es öffentlich als Standard?
ja-member-Variablen auf diese Weise erstellt werden, werden standardmäßig öffentlich (in PHP 4 waren alle Mitglieder der öffentlichkeit) - ich bin mir nicht sicher ob es eine einfache Möglichkeit der Schaffung von nicht-öffentlichen Variablen.
ist dies die Arbeit, wenn ich keinen Wert angeben ?
und was ist mit der variable Variablen? was meinst du unter dieser?
InformationsquelleAutor John Carter
oder
bitte Leih mir eine helfende hand auf diesen einen stackoverflow.com/questions/42295574/...
InformationsquelleAutor bfg9k
Als alternative, Sie können auch leiten Sie Ihr Objekt aus
ArrayObject
. So erbt array-Verhalten und ein paar Methoden, die machen Einspritzen von Parametern leichter.Attribute stehen dann als
$this->var
und$this["var"]
ebenfalls, die kann oder nicht kann für den Anwendungsfall. Die alternative Methode zur Einstellung von Parametern wäre$this->offsetSet("VAR", "some value");
.Btw, es gibt nichts böses über variable Variablen. Sie sind eine angemessene Sprache zu konstruieren, als wäre die Wiederverwendung von ArrayObject.
InformationsquelleAutor mario