phpbar.de logo

Mailinglisten-Archive

[php] verwirrende Effekte bei Klassenbenutzung

[php] verwirrende Effekte bei Klassenbenutzung

Norbert Pfeiffer norbert at itbw.de
Don Jun 1 15:59:51 CEST 2006


Hai,

in einem Script wird eine DB-Klasse verwendet, klappt prima.
Die Klasse protokolliert automatisch was gemacht wird, das
kann man sich dann anzeigen lassen, was sehr hilfreich ist.
Mittels Switch wird das dann im "real live" abgestellt.

Sollen die Methoden innerhalb einer Funktion verwendet werden,
uebergebe ich die Objektreferenz, was auch gut klappt.
Komischerweise setzt dann jedoch die Protokollierung aus,
also das, was innerhalb der Funktion getan wird, erscheint
nicht im Protokoll. Aber warum ist das so ... <gruebel>

Beispiel:
<?
$DB = new call_mysql( ... );

function get_idxA($table, $XX='') {
    $query = "SHOW KEYS FROM $table";
    return $XX->get_data($query);
}
print_r(get_idxA('test', $DB));
/* hier bleibt die Protokoll-Variable leer
*/

function get_idxB($table) {
    global $DB;
    $query = "SHOW KEYS FROM $table";
    return $DB->get_data($query);
}
print_r(get_idxB('test'));
/* hier wird die Protokoll-Variable gefuellt
*/
?>

Die Protokoll-Variable wird innerhalb der Klasse
in der jeweiligen Methode mit
<?
$this->proto .= 'blah blah';
?>
gefuellt und am Scriptende ueber eine eigene
Methode, falls gewuenscht, ausgegeben.


m. b. G.  N. Pfeiffer
---------------------
normal: 06131-1436094
Notruf:  0163-3613642
---------------------
e.o.f.

php::bar PHP Wiki   -   Listenarchive