Mailinglisten-Archive |
Dennis Sterzenbach wrote:
> Die Konstante IST definiert.
> Aber (offensichtlich) gibts(gabs?) einen Bug bei Prepared bzw.
> parameterisierte Statements wie dieses:
> $db->getAll('SELECT * FROM tblx WHERE type=?', MYDEFAULTTYPE);
>
> da kam nämlich immer SELECT * FROM tblx WHERE type=MYDEFAULTTYPE
> bei raus, statt dass der Wert von MYDEFAULTTYPE eingesetzt wurde.
ich kann mir fast nicht vorstellen das dies ein Fehler von PEAR::DB ist,
weil die aufgerufene Funktion gar nicht weiß woher die Daten Kommen, ob
aus einer Konstante, Funktion oder Variable!
function funktion( $param ) {}
die Funktion bekommt ja immer nur das ausgewertet Ergebnis des
Funktions-Aufrufs, die Funktion kann gar nicht wissen ob der Parameter
aus einer Konstante oder Variablen oder sonst woher kommt und demzufolge
kann sie erst recht nicht wissen wie die Konstante hieß.
also:
funktion( KONSTANTE )
funktion( $variable )
funktion( $objekt )
funktion( funktion() )
funktion( &$variable )
wird folglich zu
funktion( 'Konstanteninhalt' )
funktion( 'Variableninhalt' )
funktion( Objekt ) // PHP4
funktion( Objektreferenz ) // PHP5
funktion( 'Funktionsrückgabe' )
funktion( Variablenreferenz )
und nur diesen Inhalt bekommt die Funktion, wenn also die Funktion da
etwas anderes bekommt hat das nichts mit der Funktion zu tun, sondern
mit dem Parser.
--
Sebastian Mendel
www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive