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