/ 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
{} () []
Fra : Mette Frederiksen


Dato : 23-05-02 17:45

Hejsa!

Hvornår er det lige ta man bruger disse forskellige rammer (eller hvad det
nu end hedder?) når man skriver php?

Gerne en forklaring med eksempler..eller henvisning til hjemmeside hvor jeg
kan læse mere! *S*

1000 tak
Mette

--
--
OBS OBS! hjemmeside ejer!!!! vil du være sød at lave et linkt til dette
forum??
http://www.fonager.dk/forum/forum.asp?master_id=6105



 
 
Erlend Klakegg Bergh~ (23-05-2002)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 23-05-02 17:49

"Mette Frederiksen" <rollike@frederiksen.mail.dk> skrev i melding
news:acj5dp$aqa$1@sunsite.dk...
> Hejsa!
>
> Hvornår er det lige ta man bruger disse forskellige rammer (eller hvad det
> nu end hedder?) når man skriver php?
>
> Gerne en forklaring med eksempler..eller henvisning til hjemmeside hvor
jeg
> kan læse mere! *S*

<?php
if (!isset ($string[0])) {
echo "Dette er bare et eksempel.";
}
?>

--

Vennlig hilsen Erlend

erlendkb@online.no - ICQ: 42053660
http://www.kleggen.com/ - http://www.pizza.no/



Per Thomsen (23-05-2002)
Kommentar
Fra : Per Thomsen


Dato : 23-05-02 22:43


"Erlend Klakegg Bergheim" <erlendkb@online.no.NOSPAM> wrote in message
news:t49H8.4198$fG3.145286@news2.ulv.nextra.no...
> "Mette Frederiksen" <rollike@frederiksen.mail.dk> skrev i melding
> news:acj5dp$aqa$1@sunsite.dk...
> > Hejsa!
> >
> > Hvornår er det lige ta man bruger disse forskellige rammer (eller hvad
det
> > nu end hedder?) når man skriver php?
[snip]
>
> <?php
> if (!isset ($string[0])) {
> echo "Dette er bare et eksempel.";
> }
> ?>
[snip]

Jeg går udfra at man skulle forestille sig at $string er en streng, og må
derfor gøre opmærksom
på at det som Erlend har skrevet er "gammel" (deprecated) syntaks. Det
virker stadig men den
nye syntaks er:
$string{0}

Da svaret til Mettes spørgsmål ikke er helt så ligetil, vil jeg forsøge mig
med en hurtig forklaring
af de forskellige "klammer".

Curly Braces / Krøllede parenteser: {} - Bruges til 3 ting.

1) Til at indeksere en streng.
Har du f.eks. strengen $string="abcdefg" kan du få fat i det 6 bogstav i
strengen således:
$sixthLetter = $string{5}
(Læg mærke til at det er position nr. 5 der giver det 6. bogstav, da det
første bogstav har
position nr 0.)

2) Til variable-variables
Har vi f.eks. en variabel $x1="test" og en variabel $i=1
Så vil ${'x'.$i} være et variable-variable udtryk for variablen $x1

3) Til at gruppere kildekode i logiske bloke.
Som f.eks. hvis man ønsker at mere end en statement i en if-sætning:
if( $x==1 ) {
$x++;
$y--;
}
Hvis $x er lig 1, lægger vi 1 til $x og trækker 1 fra $y.
Står det f.eks. således:
if( $x==1 )
$x++;
$y--;
Betyder det:
Hvis $x er lig 1 ligger vi til til x.
Bagefter trække vi en fra y (uanset hvad $x er)
Læg mærke til at de fleste nok vil betragte det sidste if eksempel som
dårlig kode, da
indenteringen, nemt kan narre en til at tro $y også kun vil blive
eksekveret hvis $x==1
De fleste ville nok skrive således:
if( $x==1 ) $x++;
$y--;
Eller måske således:
if( $x==1 )
$x++;
$y--
Den sidste bryder jeg mig personligt ikke om, men jeg bryder mig i det
hele tager ikke
om at man laver if sætninger uden at gruppere tilfældene i {} - jeg vil
helst skrive
således:
if( $x==1 ) {
$x++;
}
$y--;
Nu er der ingen tvivl og det vil være nemt for mig at tilføje statements
til if-sætningen.

Parenteser: () - Bruges til 4 ting.
Selvom mange måske ikke ville skelne imellem de 3 første, da de alle ligner
funktionskald.

1) Til language constructs
F.eks. array() og echo(), som man godt kan vælge at betragte som
funktioner, men det
er det ikke. Det er language constructs, jeg vil ikke komme nærmere
end på forskellen,
da den ikke er væsentlig for forståelsen af mit indlæg..
Ved brugen af echo er () valg-fri, og mangle undlader dem ofte.

2) Til funktioner:
F.eks. når du kalder dem: $dbConn = mysql_connect($host, $user,
$passwd);
Eller hvis du laver dine egne funktioner:
function hello_world() {
echo "Hello, wold
}
Her har () ikke den store betydning, men de skal dog være der. Har
du f.eks. en funktioner
der skal have argumenter:
function sigHejTil($user) {
echo "Hej ".$user;
}
bruges () til at angive hvilke argumenter du forventer at funktionen
bliver kaldt med.

Læg mærke til at vi her også bruge curly-braces til at gruppere de
til funktionen hørende
statements. Så vidt jeg ved er det her _ikke_ tilladt at udelade
dem.

3) Til objekter:
$objUser = new User();
Hvor din klasse f.eks. ser således ud:
class User {
var $name;
function User() {
$this->name=NULL;
}
}
Igen kan du bruge () til at angive parametre:
$objUser = new User("Mette");
Hvor din klasse ser således du:
class User {
var $name;
function User( $name ) {
$this->name = $name;
}
}

4) Til ændring af præcedens:
F.eks. er
3*4+2 = 14
Fordi * har højere præcedens end + (Man ganger før man plusser).
Men:
3*(4+2) = 18
Fordi jeg nu med en parentes har markeret at 4+2 skal ske før vi
ganger.

På det niveau jeg har indtryk af at du (Mette) er nu tror jeg at du bare
skal betragte de 3
første som funktioner.

Braces / Firkantede parenteser: [] Bruges til 1 ting.
Til at indeksere arrays. Man skelner mellem indekserede arrays og
associative arrays.
Indekserede arrays vil alle værdierne ligge på en bestemt position i
array'et.
F.eks.
$arrTest[3]
betyder det 4. element i array'et $arrTest (Igen starte vi fra position
0).
I associative arrays vil elementerne være associerede med en værdi.
F.eks.
$arrTest['navn']
betyder det element i array'et der er associeret med nøglen 'navn'.

Man kan også stadig bruge [] til at indeksere i en streng, men som jeg
startede hele den smøre
med at sige er det "gammel" syntaks. Det virker stadig, men det er
"deprecated".


Det var sådan lige et hurtigt gennemløb, for yderligere detaljer, vil jeg
give Jacob (som også har
svaret på Mettes indlæg) ret, dog vil jeg være så flink at specificere det
lidt yderligere :)
Læs: <http://dk.php.net/manual/en/langref.php>

MVH Per Thomsen,
http://www.pert.dk/




Mette Frederiksen (24-05-2002)
Kommentar
Fra : Mette Frederiksen


Dato : 24-05-02 08:57

Tak for svaret!!! Nu giver det lidt mere mening.. men det bliver helt
sikkert gemt så jeg senere kan kigge tilbage derpå!


> Det var sådan lige et hurtigt gennemløb, for yderligere detaljer, vil jeg
> give Jacob (som også har
> svaret på Mettes indlæg) ret, dog vil jeg være så flink at specificere det
> lidt yderligere :)
> Læs: <http://dk.php.net/manual/en/langref.php>

Nå.. fint nok.. det var den side jeg ikke selv kunne finde.. så det er
perfekt! *S*

Mette

>
> MVH Per Thomsen,
> http://www.pert.dk/
>
>
>



Lars Petersen (24-05-2002)
Kommentar
Fra : Lars Petersen


Dato : 24-05-02 08:55

> Jeg går udfra at man skulle forestille sig at $string er en streng, og må
> derfor gøre opmærksom
> på at det som Erlend har skrevet er "gammel" (deprecated) syntaks. Det
> virker stadig men den
> nye syntaks er:
> $string{0}

Det er da noget vrøvl. Hvor ser du det? På php.net er det stadig [] og det
er jeg da ret sikker på ikke bliver ændret!

Se evt. på
http://dk.php.net/manual/en/language.types.string.php
http://dk.php.net/strings
http://dk.php.net/array

En ting i har glemt er at {} kan bruges til at evaluere variable osv i
strengudtryk,
sådan f.eks:
$streng = "hej med {$objekt->bruger->navn}!";
eller
$streng = "hej med {$bruger[0][navn]}!";

> Man kan også stadig bruge [] til at indeksere i en streng, men som jeg
> startede hele den smøre
> med at sige er det "gammel" syntaks. Det virker stadig, men det er
> "deprecated".

Igen, hvor? :)

--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy - A Free Half Life
Manager!
To mail me remove your-pants.



Per Thomsen (25-05-2002)
Kommentar
Fra : Per Thomsen


Dato : 25-05-02 21:02


"Lars Petersen" <lp@your-pants.coder.dk> wrote in message
news:qlmH8.22142$4f4.762601@news000.worldonline.dk...
> > Jeg går udfra at man skulle forestille sig at $string er en streng, og

[snip]
> > nye syntaks er:
> > $string{0}
>
> Det er da noget vrøvl. Hvor ser du det? På php.net er det stadig [] og det
> er jeg da ret sikker på ikke bliver ændret!
>
> Se evt. på
> http://dk.php.net/manual/en/language.types.string.php

Har du selv læst den side? Kig under afsnittet "String access by character",
den
aller første note. Der står.
Note: For backwards compatibility, you can still use the array-braces.
However, this syntax is deprecated as of PHP 4.


[snip]
>
> En ting i har glemt er at {} kan bruges til at evaluere variable osv i
> strengudtryk,
> sådan f.eks:
> $streng = "hej med {$objekt->bruger->navn}!";
> eller
> $streng = "hej med {$bruger[0][navn]}!";
>
[snip]
Så sandt, så sandt, det glemte jeg. Muligvis for jeg næsten
altid bruger konkatenerings operatoren i den slags udtryk .
Men du huskede den - så fik Mette også den med. :)

MVH Per Thomsen,
http://www.pert.dk/




Lars Petersen (26-05-2002)
Kommentar
Fra : Lars Petersen


Dato : 26-05-02 17:40

> Har du selv læst den side?

Hvad regner du med?? Selvfølgelig har jeg ikke det!! :))

>Kig under afsnittet "String access by character",
> den
> aller første note. Der står.
> Note: For backwards compatibility, you can still use the array-braces.
> However, this syntax is deprecated as of PHP 4.

Du har selvfølgelig ret! Man lærer nyt hver dag! :) Jeg synes stadig
det er underligt, og at det ikke rigtigt passer ind nogle steder, men
sådan er der jo så meget :)


--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy - A Free Half Life
Manager!
To mail me remove your-pants.



Jacob Volstrup (23-05-2002)
Kommentar
Fra : Jacob Volstrup


Dato : 23-05-02 17:53

$array = array ("test1", "test2");
if (count($array)) {
print $array[0];
}

Måske dette kan hjælpe en lille smule hen af vejen. Eller er
www.php.net/manual et godt sted at starte

--
Mvh Jacob Volstrup
- www.netspecialisten.dk -

"Mette Frederiksen" <rollike@frederiksen.mail.dk> wrote in message
news:acj5dp$aqa$1@sunsite.dk...
> Hejsa!
>
> Hvornår er det lige ta man bruger disse forskellige rammer (eller hvad det
> nu end hedder?) når man skriver php?
>
> Gerne en forklaring med eksempler..eller henvisning til hjemmeside hvor
jeg
> kan læse mere! *S*
>
> 1000 tak
> Mette
>
> --
> --
> OBS OBS! hjemmeside ejer!!!! vil du være sød at lave et linkt til dette
> forum??
> http://www.fonager.dk/forum/forum.asp?master_id=6105
>
>



Thïngmand (24-05-2002)
Kommentar
Fra : Thïngmand


Dato : 24-05-02 08:23

> Gerne en forklaring med eksempler..eller henvisning til hjemmeside hvor
jeg
> kan læse mere! *S*

www.webcafe.dk/php




Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408545
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste