Hi
Kurz nach dem ersten Problem kommt wieder ein Neues zum Zähne ausbeißen:
Das ist der Übeltäter:
Alles anzeigen
darin erzeuge ich ein Objekt vom Typ element_credits:
Alles anzeigen
und will dessen Referenz übergen an diese Klasse:
Alles anzeigen
Der Fehler liegt nun laut Compiler in Zeile 9 der letzten Klasse, also hier:
der Error sieht so aus:
Gruß
Kurz nach dem ersten Problem kommt wieder ein Neues zum Zähne ausbeißen:
Das ist der Übeltäter:
Quellcode
- class programType implements datatype {
- private $internalID = NULL; // ID refering to internal database information set
- private $ref_qualification = NULL; // minOccurs:1 maxOccurs:1
- // attributes
- private $id = NULL;
- private $ident = NULL;
- private $language = NULL;
- public function __construct($internalID, $id = 'TU KL', $ident = 'TU KL', $language = 'de-DE') {
- $this->id = $id;
- $this->ident = $ident;
- $this->language = $language;
- $this->internalID = $internalID;
- $this->fetch_DataFromDB($internalID);
- }
- public function print_xml() {
- $xml = NULL;
- $xml = "<program";
- if (!is_Null($this->id)) { $xml .= " id='".$this->id."'"; }
- if (!is_Null($this->ident)) { $text .= " ident='".$this->ident."'"; }
- if (!is_Null($this->language)) { $text .= " language='".$this->language."'"; }
- $xml .= ">";
- $xml .= $this->ref_qualification->print_xml();
- $xml .= "</program>";
- return $xml;
- }
- private function fetch_DataFromDB($internalID) {
- $myDB =& new Database();
- $sql = "SELECT * FROM bla WHERE id = ".$internalID;
- $myDB->query($sql);
- $result = $myDB->fetchArray(MYSQL_ASSOC);
- if (is_Null($result)) {
- throw new Exception('No dataset refering to id='.$internalID.' in table ugr_studienangebot');
- } else {
- $this->ref_qualification = $this->fetch_qualification($result['intECTS']);
- }
- $myDB->disconnect();
- }
- private function fetch_qualification($dataset) {
- $credits = new element_credits($dataset);
- $this->ref_qualification =& new element_qualification(&$credits);
- }
- }
darin erzeuge ich ein Objekt vom Typ element_credits:
Quellcode
- class element_credits implements UGRxmlCreator {
- // attributes
- private $ECTScredits = NULL; // decimal
- public function __construct($ECTScredits = NULL) {
- $this->ECTScredits = $ECTScredits;
- }
- public function print_xml() {
- $xml = NULL;
- if (!is_Null($this->ECTScredits)) { $xml = "<credits ECTScredits='".$this->ECTScredits."'/>"; }
- return $xml;
- }
- public function get() {
- return $this->ECTScredits;
- }
- }
und will dessen Referenz übergen an diese Klasse:
Quellcode
- class element_qualification implements UGRxmlCreator {
- private $ref_credits = NULL;
- public function __construct(element_credits $ref_credits = NULL) {
- $this->$ref_credits = $ref_credits;
- }
- public function print_xml() {
- $xml = NULL;
- echo "huhu";
- var_dump($this->ref_credits);
- return;
- $xml = "<qualification>";
- if (!is_Null($this->ref_credits)) { $xml .= $this->ref_credits->print_xml(); }
- $xml .= "</qualification>";
- return $xml;
- }
- }
Der Fehler liegt nun laut Compiler in Zeile 9 der letzten Klasse, also hier:
der Error sieht so aus:
ein var_dump in angesprochener Zeile 8(!) ergibt:Catchable fatal error: Object of class element_credits could not be converted to string in /www/htdocs/w00c8974/_UGR/src/element_qualification.php on line 9
Somit scheint die Übergabe von $credits an den Konstruktor von element_qualification ja ok zu sein, und der Fehler scheint erst bei der Übergabe an die klassenprivate Variable zu erfolgen...hier passiert doch aber nix von wegen convert to String wie in der Fehlermeldung angegeben, oder?object(element_credits)#3 (1) { ["ECTScredits:private"]=> string(3) "180" }
Gruß