Ich hatte ein Problem bei der Verwendung einer statischen Klasseneigenschaft im CodeIgniter-Framework.
Ich benutze die aktuelle 'Welcome_message' Ansicht für Debugging-Zwecke nur mit einem Array als Eingabe der Klasse.
Ich möchte eine private statische Eigenschaft namens "Daten" verwenden, die von verschiedenen Klassenfunktionen (in einem Controller) verwendet werden. mein Code unten
Siehe:
Codeigner-Problem bei Verwendung der statischen Eigenschaft in einer Klasse
<?php class Test_dev extends CI_Controller
{
private static $data='';
public function change()
{
self::$data= array('test1'=>'data1','test2'=>'data2');
$this->load->view('welcome_message',array('output'=>self::$data));
}
public function check()
{
$this->load->view('welcome_message',array('output'=>self::$data));
}
}
?>
Wenn in meinem Controller, um die Methode 'Veränderung' Aufruf /test_dev/Wechsel ich das gute Verhalten haben, die statische $ data Eigenschaft wird und abrufbar.
I erhalten:
array (2) {[ "Test1"] => string (5) "data1" [ "Test2"] => string (5) "data2" }
Aber, wenn das Verfahren 'überprüfen' verwenden, /test_dev/Check, bekomme ich nur den initialisierten Wert von $ data.
string (0) ""
Ich war expacting auch das erste Ergebnis zu erhalten, indem die 'überprüfen' Methode. Ich weiß nicht, was in meinem Code falsch ist, um die statische Eigenschaft in verschiedenen Methoden abzurufen.
Vielen Dank für Ihre Unterstützung!
Erwann
Hallo Räucherei, sorry kann ich vermisse einige Punkte: bei der Verwendung zunächst die ‚Änderung‘ Funktion, die ich, dass $ angenommen Daten werden durch den Code ‚self :: $ Daten geändert werden = array ('test1' => 'daten1', 'test2' => 'daten2'); ' und rufen Sie diese Werte ab, wenn Sie die Funktion 'check' verwenden. Aber die 'check' Funktion gibt den initialisierten Wert von $ data und nicht den in der 'change' Funktion angegebenen aus, wie ich es erwartet hatte! – ertop