Avatar billede ahrensberg Nybegynder
03. august 2007 - 18:38 Der er 7 kommentarer og
1 løsning

@ i php?

Hej alle

Hvad betyder det når der står et @ foran funktioner eller variable i PHP?

Mange hilsner
Ahrensberg
Avatar billede mcardle Nybegynder
03. august 2007 - 18:44 #1
Det betyder at den ikke vil give en fejl, hvis den melder fejl.
Avatar billede mcardle Nybegynder
03. august 2007 - 18:47 #2
F.eks. så vil man bruge den til mkdir, hvis man vil lave en mappe. Hvis mappen findes i forvejen, vil den melde fejl, så hvis man gør sådan her.: @mkdir("din_mappe",777, true); så vil den ikke melde fejl og den vil lave mappen, hvis den ikke er lavet.

//mcardle
Avatar billede ahrensberg Nybegynder
03. august 2007 - 20:17 #3
Ok... takker. :o) Men det er vel egentlig bedst at lave sin kode så den ikke fejler. F.eks. i dette tilfælde at tjekke om mappen findes, og hvis ikke den gør, så oprette den.

Nå, men tak for svaret... smid lige et så du kan få point! ;o)
Avatar billede olebole Juniormester
03. august 2007 - 21:32 #4
<ole>

Hvis du opretter en bruger i et brugersystem og brugernavnet skal være unikt, kan du først spørge ned i DB'en, om navnet allerede eksisterer. Derefter kan du indsætte eller bede brugeren om at vælge et nyt.

I langt de fleste tilfælde (alle de gange, hvor brugernavnet ikke allerede eksisterer) kan du nøjes med ét kald, hvis du skriver:

@[MYSQL_INSERT];
if (mysql_errno()==0) {
    // Bruger oprettet
    // Gør noget
}
else if (mysql_errno()==1062) {
    // Brugernavnet findes allerede
    // Gør noget andet
} else {
    // Der opstod en anden fejl
    // Gør noget ved det
}

På den måde kan det til tider være en fordel selv at styre fejlmeldingerne ... men som alt andet, bør det være nøje overvejet hvordan og hvorfor i hvert enkelt tilfælde  ;o)

/mvh
</bole>
Avatar billede mcardle Nybegynder
03. august 2007 - 22:14 #5
Svar og takker.
Avatar billede ahrensberg Nybegynder
03. august 2007 - 22:22 #6
Kan du selvfølgelig have ret i olebole! ;o) Vil som regel undgå at skrive noget som kan fejle... meeen, ingen regel uden undtagelser, hvor det som i dette tilfælde være en fordel. :o) Takker også til dig...
Avatar billede olebole Juniormester
03. august 2007 - 22:27 #7
Det var så lidt. Jeg er helt enig ... det samme gælder f.eks. try/catch i JavaScript. Som du selv nævner er der dog situationer, hvor det kan være en fordel.

Du kan nemlig ikke altid skrive kode, der ikke _kan_ fejle. Din MySQL-server kan f.eks. være nede. Så kan du ikke kalde den uden at få udskrevet en fejl - med mindre du selv håndterer dine fejlmeldinger.

Har du fået udskrevet en fejl, vil et evt. forsøg på at sætte en header (f.eks. en cookie) også fejle, fordi PHP allerede har outputtet body-indhold  ;o)
Avatar billede olebole Juniormester
03. august 2007 - 22:29 #8
Der er ikke tale om ligegyldighed ... tværtimod! Der er tale om at tage endnu bedre kontrol over koden  ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester