Mailinglisten-Archive |
Yannik Hampe schrieb: > > Steffen Kother wrote: >> Hallo Leute, >> >> Habe gerade mal mit PHPEdit v2.12.2.5164 mein simples 5er Testskript >> "enkäfert". Hier erstmal das Skript als solches: >> >> <?php >> require_once 'library/common.class.inc.php5'; >> >> $test =& single('common'); >> $test -> reqClasses('mysql'); >> >> $result = $test -> mysql -> fetchAll(mysql::query('SELECT * FROM >> sap_data.kna1 ORDER BY KUNNR ASC')); >> >> echo '<pre>'; >> print_r($test); >> echo '</pre>'; >> ?> >> >> Funzt wie gewünscht. Error-Reporting steht auf E_ALL. Mich stört jetzt >> nur noch die E_STRICT- Meldung "Non-static method mysql::query() should >> not be called statically". Ohne "static"-Zusatz in der Definition der >> Methode läuft das Skript relativ schnell durch. Schreibe ich aber >> "static" mit rein, dann benötigt das Skript im Verhältnis dazu ewig. >> Hier mal der unstatische Code der Methode: >> >> public function query ($query = NULL, $link = NULL) { >> if (empty($this)) { >> $mysql = new mysql(); >> return $mysql -> query($query, $link); >> } >> >> if (NULL === $query) { >> return false; >> } >> >> $link = $this -> checkResource('get_mysql_connect', $link); >> >> $resource = @mysql_query($query, $link); >> $resource = $this -> checkResource('set_mysql_query', >> $resource); >> return $resource; >> } > > Ja... was soll ich dazu sagen mhh... > Sagen wir mal vorsichtig: Ich glaube ausser in php hast du noch nicht > "richtig" OOP programmiert. > Eine static Methode ist eine normale Funktion mit Klassenzugehörigkeit. > Sie hat kein $this. Mit anderen Worten: Dein if (empty(this)) ist IMMER > true. Damit bleibst du in einer Endlosrekursion stecken (Obwohl ich das > jetzt nicht getested habe udn du nur schreibst, das es im Vergleich > lange dauert aber schon funktionier...?). das funktioniert (in PHP) -- Sebastian
php::bar PHP Wiki - Listenarchive