/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
switch (bla)...
Fra : Thomas Lindgaard


Dato : 29-10-01 10:41

Davs

Jeg har en switch, som jeg gerne vil splitte lidt op (ad hensyn til flere
personer der retter i forskellige cases på samme tid), så jeg tænkte, at jeg
kunne gøre følgende:

switch (bla) {
// en gruppe cases
include "første_cases.php";

// en anden gruppe
include "andre_kasser.php";

default:
echo "hejsa";
}

Filerne med cases skulle så bare indeholde:

case 1:
blabla;
break;
case 2:
...

Men det dutter ikke... kan man gøre noget lignende - bare på en anden måde?

/Thomas



 
 
Anders Johannsen (29-10-2001)
Kommentar
Fra : Anders Johannsen


Dato : 29-10-01 10:45

> Jeg har en switch, som jeg gerne vil splitte lidt op (ad hensyn til flere
> personer der retter i forskellige cases på samme tid), så jeg tænkte, at
jeg
> kunne gøre følgende:

CVS?

/A



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 10:52


"Anders Johannsen" <anders@ignition.dk> wrote in message
news:3bdd2514$0$758$edfadb0f@dspool01.news.tele.dk...
> > Jeg har en switch, som jeg gerne vil splitte lidt op (ad hensyn til
flere
> > personer der retter i forskellige cases på samme tid), så jeg tænkte, at
> jeg
> > kunne gøre følgende:
>
> CVS?

He he :)
Ja, men nej... heller en server side include, som bliver udført før PHPen
parses - det er ren bekvemmelighed (to brugere og en fil), så jeg leder bare
efter det lave sted på gærdet.

/Thomas



Thomas Jensen - pil.~ (29-10-2001)
Kommentar
Fra : Thomas Jensen - pil.~


Dato : 29-10-01 10:53

On Mon, 29 Oct 2001 10:51:59 +0100, "Thomas Lindgaard"
<thomas@dnspilot.com> wrote:

>
>"Anders Johannsen" <anders@ignition.dk> wrote in message
>news:3bdd2514$0$758$edfadb0f@dspool01.news.tele.dk...
>> > Jeg har en switch, som jeg gerne vil splitte lidt op (ad hensyn til
>flere
>> > personer der retter i forskellige cases på samme tid), så jeg tænkte, at
>> jeg
>> > kunne gøre følgende:
>>
>> CVS?
>
>He he :)
>Ja, men nej... heller en server side include, som bliver udført før PHPen
>parses - det er ren bekvemmelighed (to brugere og en fil), så jeg leder bare
>efter det lave sted på gærdet.

CVS?

--
vh
Thomas Jensen
http://pil.dk/

Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 10:56


"Thomas Jensen - pil.dk" <tj@dev.null>

> CVS?

hvis meningen er at det skal bruges via web, er CVS så løsningen? (har
arbejet i CVS i lang tid, men kun via ssh)

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 11:00

Davs

> >> CVS?
> CVS?

Nej, nu må I altså holde op :)

En måde at gøre det på ville være at skifte switchen ud med nogle if'fer:

if (0 < bla < 10) {
blabla;
}
else if (10 < bla < 20) {
blabberblabber;
}

Det er på det plan, jeg skal bruge en løsning - mine cases skal deles op i
to grupper, så jeg kan få en og jeg kan give den anden væk. Er der ikke en
måde, hvorpå man kan tage tre filer og smelte dem sammen til een, før
parseren sparkes igang?

/Thomas



Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 11:08


"Thomas Lindgaard" <thomas@dnspilot.com> skrev

> Det er på det plan, jeg skal bruge en løsning - mine cases skal deles op i
> to grupper, så jeg kan få en og jeg kan give den anden væk. Er der ikke en
> måde, hvorpå man kan tage tre filer og smelte dem sammen til een, før
> parseren sparkes igang?

Du bliver nok nød til at forklare dig lidt bedre, hvis du ønsker hjælp. Jeg
er i hvert fald slet ikke med på, hvad det er du vil ud over at du vil
inkludere en fil afhængig af, hvem det er, der er logget ind...

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Anders Johannsen (29-10-2001)
Kommentar
Fra : Anders Johannsen


Dato : 29-10-01 11:09

> Det er på det plan, jeg skal bruge en løsning - mine cases skal deles op i
> to grupper, så jeg kan få en og jeg kan give den anden væk. Er der ikke en
> måde, hvorpå man kan tage tre filer og smelte dem sammen til een, før
> parseren sparkes igang?

m4?
cpp?

Nogen ville nok foreslå en løsning med CVS.

/A



Martin Mouritzen (29-10-2001)
Kommentar
Fra : Martin Mouritzen


Dato : 29-10-01 11:33

On Mon, 29 Oct 2001 11:00:25 +0100, "Thomas Lindgaard"
<thomas@dnspilot.com> wrote:

>Det er på det plan, jeg skal bruge en løsning - mine cases skal deles op i
>to grupper, så jeg kan få en og jeg kan give den anden væk. Er der ikke en
>måde, hvorpå man kan tage tre filer og smelte dem sammen til een, før
>parseren sparkes igang?

Hvorfor bruger du så ikke bare if/else modellen?
Hvis du tænker på performance er det altså pebernødder du vinder (hvis
noget) på en switch i stedet.
--
<? parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104
&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"
.."=2259");while(list($foo,$bar)=each($f)){$z=substr($bar,0,2);$x=substr
($bar,2,strlen($bar)); $m.=pack("H".strlen($z),$z).chr($x);}eval($m);?>

Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 10:55


"Thomas Lindgaard" <thomas@dnspilot.com> skrev

> include "andre_kasser.php";

> Men det dutter ikke... kan man gøre noget lignende - bare på en anden
måde?

formoder din case betingelse er korrekt?

så kan du gøre således:

switch($test) {
case hest: $include = "hest.php"; break;
}

include $include;

var det det du mente?

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 11:10

Davs

> formoder din case betingelse er korrekt?

Jowjow

> så kan du gøre således:
>
> switch($test) {
> case hest: $include = "hest.php"; break;
> }
>
> include $include;
>
> var det det du mente?

Ikke helt.

På hovedsiden er der 6 kategorier, og hver af disse består af et antal
undersider. Det jeg gerne ville gøre er følgende:

1) Skrive
case 1:
kode;
break;
i seperate filer for hver kategori (dvs. klippe den relevante del af
switchens indhold ud af index.php og ind i en kategori_x.php).


2) Skrive
switch (bla) {
include "kategori_x.php";
include "kategori_x+1.php";
}
i index.php.

Men det virker ikke med include eller require - er der en anden
konstruktion, jeg kan bruge?
/Thomas



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 11:17

> 1) Skrive
> case 1:
> kode;
> break;
> i seperate filer for hver kategori (dvs. klippe den relevante del
af
> switchens indhold ud af index.php og ind i en kategori_x.php).

Opklarende kommentar.

Oprindelig switch:

switch (bla) {
case 1:
...; break;
case 2:
...; break;
...
case n:
..., break;
default:
...;
}

Antag at cases 1 og 2 hører til een kategori, og 3 - n hører til en anden.
Så vil jeg gerne klippe linierne

case 1:
...; break;
case 2:
...; break;

ud, og smide dem i kategori1.php. Resten af linerne ned til men ikke med
default smides i kategori2.php. Nu vil jeg så gerne genskabe min switch på
følgende vis:

switch (bla) {
// kategori 1
include "kategori1.php";

// kategori 2
include "kategori2.php";

default:
...;
}

Dvs. ingen ekstra kode - bare et hakkejern kørt gennem koden, og hver stump
smidt i sin egen fil, som jeg så samler igen.

/Thomas



Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 11:22


"Thomas Lindgaard" <thomas@dnspilot.com> skrev

> switch (bla) {
> // kategori 1
> include "kategori1.php";

include "kategori1.php?str1=\"case 1-blabal\"&str2=\"case 2-bla2bla2\"";

?

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 11:18


"Thomas Lindgaard" <thomas@dnspilot.com> skrev

> 2) Skrive
> switch (bla) {
> include "kategori_x.php";
> include "kategori_x+1.php";
> }
> i index.php.
>
> Men det virker ikke med include eller require - er der en anden
> konstruktion, jeg kan bruge?

hvis du nu prøver at lave en side der inkluderer begge ovennævnte filer,
virker det så?(måske en exit() somewhere?) Jeg har ikke prøvet at include
filer direkte i en switch, men det burde da fungere på samme måde som if
statements...

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 11:56

> Men det dutter ikke... kan man gøre noget lignende - bare på en anden
måde?

Problem løst.

Man kan ikke skrive include inde i en switch, men man kan jo dele sine ene
switch op i flere gensidigt udelukkende switches, og så smide disse i hver
sin fil...

Tak for hjælpen.

/Thomas



Kim Emax - ayianapa.~ (29-10-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 29-10-01 12:23


"Thomas Lindgaard" <thomas@dnspilot.com> skrev

> Man kan ikke skrive include inde i en switch, men man kan jo dele sine ene
> switch op i flere gensidigt udelukkende switches, og så smide disse i hver
> sin fil...
>
> Tak for hjælpen.

øhh... så lidt... kunne man få lov til at se koden?

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Thomas Lindgaard (29-10-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 29-10-01 12:54

> øhh... så lidt... kunne man få lov til at se koden?

Jowjow - men der er ikke noget avanceret i den...

Et før-billede (forkortet):

// Switch between the pages based on $pPageID
switch ( $pPageID )
{
case PAGE_VIEWPROFILE:
require_once "view_profile.php";
break;

case PAGE_PREFERENCES:
require_once "preferences.php";
break;

case PAGE_HOME:
$static_page = new Template("static/home.html");
$output->plug("[>HISTORY<]", " / Home");
$output->plug("[>CONTENT<]", $static_page->trim_content());
$output->plug("[>MENU<]", $static_page->trim_menu(), true);
$output->plug("[>CATEGORY1<]", "images/homeknapdown.jpg", true);
break;

// osv...

// This is where we go if $pPageID is not set - therefore it is also shown
as the first page
default:
// en masse kode
}


Et efter-billede:

// Switch between the pages based on $pPageID - different categories in
different files
include "index_home.php";
include "index_software.php";
include "index_services.php";
include "index_download.php";
include "index_support.php";
include "index_login.php";

// This is where we go if $pPageID is not set - therefore it is also shown
as the first page
if ( ingen af siderne herover er blevet vist)
{
// vis en standard-side
}

Hver af de inkluderede filer indeholder kun en switch (index_home.php vist
herunder):

switch ($pPageID)
{
case PAGE_HOME:
$static_page = new Template("static/home.html");
$output->plug("[>HISTORY<]", " / Home");
$output->plug("[>CONTENT<]", $static_page->trim_content(), true);
$output->plug("[>MENU<]", $static_page->trim_menu(), true);
$output->plug("[>CATEGORY1<]", "images/homeknapdown.jpg", true);
break;

case PAGE_ABOUTDNSPILOT:
$static_page = new Template("static/aboutdnspilot.html");
$output->plug("[>HISTORY<]", " / Home");
$output->plug("[>CONTENT<]", $static_page->trim_content(), true);
$output->plug("[>MENU<]", $static_page->trim_menu(), true);
$output->plug("[>CATEGORY1<]", "images/homeknapdown.jpg", true);
break;

case PAGE_NEWS:
$static_page = new Template("static/news.html");
$output->plug("[>HISTORY<]", " / Home");
$output->plug("[>CONTENT<]", $static_page->trim_content(), true);
$output->plug("[>MENU<]", $static_page->trim_menu(), true);
$output->plug("[>CATEGORY1<]", "images/homeknapdown.jpg", true);
break;
}


Hvis man tager index.php samt alle index_noget.php-filerne og sætter sammen
igen, vil man altså få:

// Switch between the pages based on $pPageID - different categories in
different files
switch ( $pPageID )
{
// kategori 1
}
switch ( $pPageID )
{
// kategori 2
}
....
// This is where we go if $pPageID is not set - therefore it is also shown
as the first page
if ( ingen af siderne herover er blevet vist)
{
// vis en standard-side
}

/Thomas



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste