Ich möchte mehrere Instanzen einer Klasse in CodeIgniter erstellen. Ich habe meine Klasse als Bibliothek erstellt, kann aber nicht die Syntax ermitteln, mit der mehr als eine Instanz erstellt werden kann.Wie erstellen Sie mehrere Instanzen einer Bibliotheksklasse in CodeIgniter?
Antwort
Vom CodeIgniter Benutzerhandbuch:
eine Bibliothek zu einem anderen Objektname
Wenn die dritten (optional) Parameter leer ist zuweisen, wird die Bibliothek in der Regel sei einem Objekt mit demselben Namen als Bibliothek zugewiesen. Beispiel: Wenn die Bibliothek Sitzung heißt, wird einer Variablen mit dem Namen $ this-> session zugewiesen.
Wenn Sie Ihre eigene Klasse Namen setzen Sie den Wert auf die dritten Parameter übergeben können: $ this-> last-> Bibliothek ('Session', '', 'my_session');
// Session-Klasse ist jetzt mit zugegriffen:
$ this-> my_session
Ich denke, das ist, was Sie suchen.
Ich weiß, dass dieses Profil schon lange vorbei ist, aber es war eine der Fragen, auf die ich stieß, als ich nach meiner Antwort suchte. Also hier ist meine Lösung ...
Es ist PHP. Erstellen Sie Ihre Klasse als Bibliothek, laden Sie sie mit der Standard-CI-Loader-Klasse, verwenden Sie sie jedoch wie in einem normalen PHP-Skript.
Klasse Körperbau:
class My_class {
var $number;
public function __construct($given_number){
$number = $given_number;
}
public function set_new_num($given_number){
$number = $given_number;
}
}
laden sie:
// This will load the code so PHP can create an instance of the class
$this->load->library('My_class');
Dann instanziiert und das Objekt verwenden, wo nötig:
$num = new My_class(24);
echo $num->number;
// OUTPUT: 24
$num->set_new_num(12);
echo $num->number;
// OUTPUT: 12
Das einzige Mal, dass ich verwenden $ this-> my_class soll Aufrufe an statische Funktionen machen, die ich code.
funktioniert nicht. Sie können im Konstrukt keinen Parameter definieren und dann die Bibliothek laden und eine Instanz in CI initiieren. es wird einen Fehler ausgeben, da es erwartet, dass Sie es wie folgt laden: $ this-> load-> library ('My_class', $ given_number) – mixix
Darf ich fragen, wie wir die Instanz zurückholen können, um sie in einem Array zu speichern beispielsweise? [in der Steuerung] $ this-> someclass; gibt die aktuelle Instanz jedes Mal? Ursache Ich habe folgendes mit verschiedenen $ params für jedes auf, aber was ich als Ergebnis bekam, war das erste Objekt nicht zwei diffrent: $ This-> Load-> Bibliothek ('SomeClass', $ Parameter); print_r ($ this-> someclass); $ this-> load-> library ('SomeClass', $ params); print_r ($ this-> someclass); – limitcracker
Entschuldigung für die Wiederbelebung dieses Themas, aber ich denke, ich könnte etwas vernünftiges hinzufügen.
Sie können mehrere Instanzen einer Klasse hinzufügen. Ich weiß nicht, ob es die codeigniter Standardverwendung irgendwie verletzt, aber scheint mehr codeigniter-ish als das Laden einer Bibliothek (die $ this-> library_name erstellt, die nicht verwendet wird) und dann 2 weitere Instanzen mit "new" Schlüsselwort.
$this->load->library('my_library', '', 'instance1');
$this->load->library('my_library', '', 'instance2');
$this->instance1->my_class_variable = 1;
$this->instance2->my_class_variable = 2;
echo $this->instance1->my_class_variable; // outputs 1
echo $this->instance2->my_class_variable; // outputs 2
Ich benutze dies in meinem Code, um verschiedene Menüs zu generieren. Ich habe eine "Menü" -Klasse und verschiedene Instanzen für jedes Menü, mit jeweils unterschiedlichen Menüpunkten.
- 1. CodeIgniter - mehrere Instanzen eines Modells
- 2. Wie mehrere Instanzen einer Generatorfunktion
- 3. Mehrere Instanzen von UIViewController erstellen
- 4. Mehrere Instanzen einer Bean
- 5. Mehrere Instanzen globaler Statik in C++ erstellen?
- 6. Wie behandeln Sie mehrere Instanzen von setTimeout()?
- 7. Wie verwenden Sie mehrere Sprachen in einer Ansicht in CodeIgniter?
- 8. Beschränken Sie mehrere Instanzen einer Anwendung
- 9. Obsolete Bibliotheksklasse
- 10. Mehrere Klassen Instanzen im laufenden Betrieb erstellen
- 11. Kann nicht mehrere Instanzen von PowerPoint erstellen
- 12. Wie mehrere MvcHtmlString Instanzen
- 13. Begrenzen Instanzen erstellen einer Klasse?
- 14. Mehrere Redis-Instanzen
- 15. Codeigniter mehrere Ansichten in einer Ansicht
- 16. Mehrere QMainWindow-Instanzen?
- 17. Legen Sie mehrere Datensätze in Codeigniter
- 18. Mehrere Instanzen einer einzelnen MEF DLL
- 19. Erstellen Sie mehrere Instanzen einer vorhandenen ListView-Klasse dynamisch in Android
- 20. Aktualisieren Sie mehrere Zeilen in Codeigniter
- 21. Erstellen Sie mehrere Kontextmenüs in einer Aktivität
- 22. Wie - mehrere Dropbox-Instanzen in Linux?
- 23. Mehrere MPMoviePlayerController Instanzen
- 24. C++, mehrere Instanzen einer DLL, Singleton
- 25. Erstellen Sie verschiedene Instanzen der Klasse
- 26. Erstellen Sie mehrere Instanzen eines Formulars (und behalten Sie sie dort) in C#
- 27. DB2-Verknüpfungsschemas für mehrere Instanzen
- 28. Wie man mehrere Instanzen in Elektron verhindert
- 29. Angular - mehrere $ http "Instanzen"
- 30. So erstellen Sie insert_batch Array in Codeigniter
Ich bin mir ziemlich sicher er meint: $ one = neue Klasse; $ zwei = neue Klasse ('but_different'); – Garrett
Sehr nützlich-danke! – mpemburn