phpbar.de logo

Mailinglisten-Archive

[php] functions mit vordefinierten values

[php] functions mit vordefinierten values

Sebastian Burg chef at sango.de
Fre Apr 1 13:49:07 CEST 2005


---------------------
Replied to:
---------------------
> > Hallo Sebastian,
> >
> > nein, das kann auch gar nicht gehen. Der Interpreter erwartet dort
> > Variablen, die die Parameter der Funktion darstellen. $foobar
> > ist dort
> > also gar nicht bekannt bzw. wird als als Parameter interpretiert. Und
> > eine Zuweisung eines Parameters zu einem Parameter im Parameterkopf
> > macht keinen Sinn, oder? :)
> 
> Doch aus interpretertechnischer Sicht könte das durchaus gehen,
> es kommt hier ganz auf die Sprachdefinition an. Statt eines
> konstanten Values eine Referenz zu nehmen bedeutet i.A. keine
> zu große Problematik, nur ist es eben, so scheint es, in PHP
> nicht vorgesehen. Durch das _=_ zwischen Variablenname und Wert
> kann auch syntaktisch ganz klar zwischen Aktualparameter und
> Parameter-preset unterschieden werden. Nur ob es der
> beste Programmierstil ist, eine variable Parametervoreinstellung
> zu haben, sei dahingestellt (Wenn man eh den variablen Wert kennt,
> dann kann man die Routine ja mit der Variablen aufrufen, deswegen
> wirds auch nicht implementiert worden sein, schätz ich)
> 
> Cheers,
> Christoph
> 

Das Problem was ich halt eigentlich damit umgehen wollte war, das ich nen mysql connect mach, aber in der zentralen config datei, mehrere datenbanken ansprechen will.
dazu hab ich funktionen für die abfrage der datenbank.
nun muss ich ja auch angeben könnne ob ich jetzt datenbank 1,2 oder 3 haben will.
sprich 
$link1
$link2
$link3

daher kann ich die ja auch nicht konstant zuweisen.
da das ja keine fixe variable ist sondern eine ressource ist.

weiss nicht ob das an der direkten problematik was ändert.

habs nun so gemacht

$bar1 = mysql_connect..... 
$bar2 = mysql_connect..... 
$bar3 = mysql_connect..... 

function foo($sql,$link = NULL) {
  global $bar1;
  global $bar2;
  global $bar3;
  if($link == NULL) $link = $bar1;
  .....
}

soweit ich geschaut hab, funktioniert das soweit gut, aber mal schauen wie es sich bewährt.

meine begründung warum man in der function keine variablen vordefinieren kann oder wie man das auch nennt, ist ja auch logisch da das ja ein eigener namespace ist. das heisst die 

$bar = ...;

function foo($value=$bar)... <- diese $bar ist im namespace der function, und damit nicht definiert. sozusagen $bar!=$bar.

naja nichts desto trotz, bin ja mal froh das es nicht meine dummheit ist die die lösung übersehen hat, sondern es geht einfach nicht :)

danke für die mühe.

gruss seba

---------------------
Mailed with SMB-Media.de Webmailer


php::bar PHP Wiki   -   Listenarchive