28. april 2003 - 21:46Der er
4 kommentarer og 2 løsninger
OOP og variabler ude fra ??
Hejsa fra mine php sider laver jeg kald til mine functioner på følgende måde. require("funktions.php"); $a=new bruger(); $a->opret_bruger($bruger, $pass);
(bare et eksembel)
min funktions.php ser således ud...
require_once("conf/config.inc.php");
// Connecter til db mysql_connect("$dbhost", $dbuser, $dbpass); mysql_select_db($database);
de filer der er i mappen classes er alle klasser med små funktioner, og i dem kunne jeg rigtig godt tænke mig at importere de variabler som er i conf/config.inc.php, meen hvorn gør jeg det ??
alle de filer du inkluderer kan frit bruge variable oprettet af andre filer du har inkluderet. du behøver ikke gøre noget specielt for det; det er helt automatisk.
Det eneste du skal sørge for er ikke at bruge en variabel før du har oprettet den.
indeni enhver funktion må du specifikt nævne enhver variabel 'udefra' som du ønsker at bruge indeni funktionen. (det er et par undtagelser, men det skader ikke at gøre det selvom det er unødvendigt)
function skal_bruge_haarfarve( $nyfarve ) { global $haarfarve; // nu kan den $haarfave variabel der // er defineret udenfor finktionen bruges indeni den $haarfarve = $nyfarve; }
Dog skal du vide at det er skidt programmering at lade sine funktioner lave sideeffekt på variable. Undgå det hvis du kan, fx ved istedet at sige:
function skal_ikke_bruge_haarfarve( $nyfarve ) { return $nyfarve; } $haarfarve = skal_ikke_bruge_haarfarve( $nyfarve ); // her ser du klart hvilken variabel 'udenfor' der bliver ændret. // det giver færre fejl i programmet
Jakoba>> tak tak for din respont meen alt det der virker bare ik i oop med classes :-) dit lille eks fek.s skulle se sådan her ud...
function skal_ikke_bruge_haarfarve( $nyfarve ) { return $nyfarve; } $haarfarve = $this->skal_ikke_bruge_haarfarve( $nyfarve ); // her ser du klart hvilken variabel 'udenfor' der bliver ændret. // det giver færre fejl i programmet
men som sagt jeg skal bare have de faste variabler som er sat i min config fil... disse variabler indeholder fek.s bruger og pass til mySQL (virker da jeg hendter dem uden for class) men de indeholder også stier,(patch) som ville være meget lettere at KUN rette et sted frem for i alle mine filer det er derfor jeg skal have dem hendtet ind i mine classes
jeg skrev nederst i selve spm. "de filer der er i mappen classes er alle klasser med små funktioner, og i dem kunne jeg rigtig godt tænke mig at importere de variabler som er i conf/config.inc.php, meen hvorn gør jeg det ?? "
som jeg skriver "klasser" altså class et-eller-andet { var $et; var $eller; var $andet;
function hent doc_rotten() { $this->et=$userroot echo "$this->et"; } }
her er et eksempel på en klasse hvor jeg i den skrevne funktion gerne ville udskrive variablen $userroot som befinder sig i min config fil..
problemet er bare at jeg får ik indholdet frev ved hverken at skrive $userroot eller global $userroot så kort og godt hva skla jeg så skrive for at få indholdet frem i disse klasser / funktioner ??
tjae, som før sagt ville jeg skrive: function hent doc_rotten() { global $userroot; $this->et=$userroot; // husk ; til at afslutte sætningen echo "$this->et"; }
men hvis det ikke virker for dig ved jeg søreme ikke hvad der er galt.
har fundet ud af det nu... for at hendte det frem skal jeg bruge ".$GLOBALS["userroot"]." så kommer det frem og uden nogen probs... hmm mente bare jeg allerede havde prøvet den mulighed med fejl:
// husk ; til at afslutte sætningen heh det var frit fra leveren det jeg skrev.. det var blot et eks for at vise dig hvad det var jeg ville :-)
men ellers tak for din tid.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.