"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
voor zover ik weet kan je een file die geinclude wordt niet stoppen
hij wordt of helemaal erin gezet, of totaal niet
wat je wel kan doen is de file parsen in je script
maar lijkt mij nogal omslachtig om zoiets te doen
of
waarom werk je tegeljik met 2 versies.....
kan je niet detecteren welke versie gebruikt wordt en dan v1 includen van die functies en als versie 2 detect wordt versie 2 includen
(ja dan krijg je 2 files 1 bevat alle functies voor v1 en de ander voor v2 )
Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum
Als hij ziet dat $var gedefinieerd is moet'ie stoppen met dat ge-includePeluso schreef op 13 december 2003 @ 01:08:
als ik het goed begrijp wil je dus een file die include wordt, stoppen als ie bij functie x aankomt.....
daar was ik al bang voorvoor zover ik weet kan je een file die geinclude wordt niet stoppen
hij wordt of helemaal erin gezet, of totaal niet
dat is dus precies wat ik nu heb.. 2 files met functies.. Wat jij bedoelt is de hele else-loop die ik hier moet maken in een andere file zetten en die includen als er geen $var wordt gelezen.. (toch?)wat je wel kan doen is de file parsen in je script
maar lijkt mij nogal omslachtig om zoiets te doen
of
waarom werk je tegeljik met 2 versies.....
kan je niet detecteren welke versie gebruikt wordt en dan v1 includen van die functies en als versie 2 detect wordt versie 2 includen
Thx voor je reactie(ja dan krijg je 2 files 1 bevat alle functies voor v1 en de ander voor v2 )
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
[edit]
Peluso bedoelt:
1
2
3
4
5
6
7
8
 | if($versienodig == 1) { include("/php/func.inc.php") } else { include("/php/func2.inc.php") }  | 
[ Voor 27% gewijzigd door DUX op 13-12-2003 01:21 ]
.    < G o o o o o o o o g l e >
Vorige 1 2 3 4 5 6 7 8 Volgende
Thx
(wat mij betreft slotje
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
tis nogal laat en heb etenje met collegaas gehad met drank
maar inderdaad die code opzet bedoelde ik
met parsen bedoelde ik eigenlijk
inlezen van de te includen file (per functie) waar ALLE functies instaan (dus v1 en v2) en dan aan de hand van functie naam ofzow bepalen welke versie die functie voor is en als het neit klopt die functie niet includen en doorgaan naar de volgende functie in de include (maar dat kan je dan dus niet met include doen
Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum
Music is the pleasure the human mind experiences from counting without being aware that it is counting
 ~ Gottfried Leibniz
1
2
3
4
5
6
7
8
9
10
 | if ($oude_var) { require("oude.inc.php"); echo "blaat1"; return; echo "blaat2"; } else { #blaat nieuwe functies }  | 
Dit doet het uiteraard perfect, maar dat is dubbelop, want nou heb ik én een return en een else (en hij voert de else alleen uit als er geen oude var bestaat..)
Ik zie ook alleen blaat1 verschijnen en niet blaat2.
Als ik de return eruit haal doet hij het ook perfect en zie ik blaat1 en blaat2.
Maar ik wil die else eruit hebben. Ik neem aan dat dat ook moet kunnen, dus ik gooi hem eruit.
Wat krijg ik dan?
Fatal error: Cannot redeclare kop() in /htdocs/php/oude.inc.php on line 32
kop() is een van de functies die in beiden voorkomt, maar versie 2 is uiteraard verbeterd.
Hoe kan dat? Maakt hij eerst alle functies aan die in een script zitten en gaat hij daarna pas de rest van de code uitvoeren? En zoja, hoe is dat te omzeilen?
[ Voor 4% gewijzigd door bartjenl op 23-12-2003 02:22 ]
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
die gebruik ik zelf voornamelijk om makkelijk te kunnen wisselen tussen hosts
zoals bijv bij de functie floatval(..) doe ik iets van
1
2
3
4
5
 | if (!function_exists("floatval")) { 
    function floatval($nr) {
        ...
    }
} | 
waardoor ik de functie floatval zowel bij php versies < 4.2.0 als > 4.2.0 kan gebruiken.
wellicht kun je hier iets mee, door te kijken of de functie al gedefineerd is,
en zo ja, doe niets
zo nee, gebruik de functie uit func2.inc.php
Dus: op jouw manier zou 't idd wel werken, maar is een beetje te omslachtig voor dit doel..
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
Je hebt gelijk dat het dubbelop is, maar wat doe je nou dan? Je haalt _allebei_ de opties eruit, ja, dan is het dubbel-op (dubbel==2) - 2 opties = 0 -> turrlijk laad hij alles.bartjenl schreef op 23 december 2003 @ 02:21:
en toch doet'ie nog steeds raar...
PHP:
 1 2 3 4 5 6 7 8 9 10 if ($oude_var) { require("oude.inc.php"); echo "blaat1"; return; echo "blaat2"; } else { #blaat nieuwe functies }
Dit doet het uiteraard perfect, maar dat is dubbelop, want nou heb ik én een return en een else (en hij voert de else alleen uit als er geen oude var bestaat..)
[..]
OF je laat de return staan, OF je laat de else staan...
Gewoon een conditional include gebruiken.
neej ik laat de return uiteraard wel staan, alleen haal de else weg. Blijkbaar definieert hij de functies dan tóch.Kippenijzer schreef op 23 december 2003 @ 13:59:
[...]
Je hebt gelijk dat het dubbelop is, maar wat doe je nou dan? Je haalt _allebei_ de opties eruit, ja, dan is het dubbel-op (dubbel==2) - 2 opties = 0 -> turrlijk laad hij alles.
OF je laat de return staan, OF je laat de else staan...
Vb:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 | #func.inc.php: if ($oude_var) { require("oude.inc.php"); return; } function kop() { #blaaaaaaaaaaat } #oude.inc.php: function kop() { #ouwe blaaaaaaaaaaat }  | 
Dat pikt hij dus niet, hij zegt dat de functie kop() in oude.inc.php niet opnieuw gedefinieerd kan worden, dus hij heeft de nieuwe functie kop() al geladen! En dat terwijl een return toch op dat moment zou moeten stoppen met includen en alles wat erna komt niet moet uitvoeren. Dit doet hij ook niet, BEHALVE functie-definities... wáárom?
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
vies is relatief. Ik wil het graag op een mooie manier doen, maar het moet ook werken. Op de manier waarop ik het nu heb, met een else{} werkt 't perfect, alleen dat is dus idd volgens mij niet de mooiste manier. Mijn vraag is: hoe dan wel?trogdor schreef op 23 december 2003 @ 14:00:
Je moet die functies ook niet definieren binnen een if, dat is vies.
Gewoon een conditional include gebruiken.
een conditional include? je bedoelt:
1
2
3
4
5
6
 | if ($oude_var) { include("oude.inc.php"); } else { include("nieuwe.inc.php"); }  | 
??
Dat is precies (edit) bijna hetzelfde want de code die in oude.inc.php resp. nieuwe.inc.php zit, plakt hij als het ware gewoon in de huidige code. Gevolg: functies die worden gedefinieerd in een if......
[ Voor 4% gewijzigd door bartjenl op 23-12-2003 20:36 ]
"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)
Afgezien van het feit dat dat strict genomen niet helemaal waar is ben ik wel met je eens dat dat voor wel of niet vies helemaal niets uitmaakt.bartjenl:
Dat is precies hetzelfde want de code die in oude.inc.php resp. nieuwe.inc.php zit, plakt hij als het ware gewoon in de huidige code. Gevolg: functies die worden gedefinieerd in een if......
Music is the pleasure the human mind experiences from counting without being aware that it is counting
 ~ Gottfried Leibniz