Jeg bruger da heller ikke selv die "råt", men kalder min egen funktion, så jeg med en enkelt ændring kan skrue op/ned for hvor meget info de uskyldige brugere skal belemres med..
or fungerer ligesom || (ved sammenligning af tal) - men ikke omvendt... - det ER da mystisk
De 2 eksempler du har givet os, er der ingen forskel på hvis du kigger på or die. or die er bare en besked du har sagt den skal give dig, hvis den ikke kan finde f.eks. mysql serveren som i dit første eksempel.
or die("Din besked det kan være hvad som helst");
Så kort sagt or die er en besked du vælger den skal fortælle dig, hvis den ikke kan finde den mysql, table eller hvad det nu kunne være.
I må godt rette mig, er selv ny inde for php. Så det er lidt svært at forklare det (:
Så vidt jeg har forstået, og brugt, så er or die("some msg"); en sikker måde at få dit script til at stoppe her. Efter die(); sker der INTET mere. resten af scriptet forbliver ubrugt. Så det er en ikke så elegant måde at sørge for at undgå yderligere fejl når det mislykkes at få forbindelse til en database (i dette tilfælde), eller anden fejlet statement.
Normalvis bruger jeg til offentlige projekter trigger_error(), da den så automatisk kalder en error handler funktion, som tager sig af den fejl, der er sket (som standard stopper den scriptet og kommer med en php-fejl). Det praktiske her er, at man selv kan skrive en error-handler som tager over i stedet for den standard funktion.
Hvis man vil undgå at brugeren kommer til at se fortrolig information, kan die() være en god failsafe.
Præcist hvad forskellen på 'or' og '||' er er jeg ikke 100% sikker på dog
Synes godt om
Slettet bruger
15. marts 2011 - 16:28#6
Ja, den kalder hvadend der kommer efter "or" hvis det som kommer før er false.
Det kunne have at gøre med at den type "eller" bruger "short-curcuit" - altså hvis første led er true springer den andet led helt over, fordi det samlede udtryk under alle omstændigheder vil ende som true. Og det er dét som adskiller or fra || - måske..
Når jeg bruger min egen funktion er det blot for at give noget mere info til mig selv under udvikling/debugging (mysql-error og linjenummer) samt at lukke af (</body>+</html>)
Selvtak, men jeg samler ikke længere points, så lad de andre tage sig af dem.
- og ja, der er altid en manualside. Hemmeligheden er den lille søgeboks i toppen til højre på php.net. Den er uundværlig - og ellers er der jo altid muligheden at søge på Google med en søgestren à la: or site:php.net
Synes godt om
Slettet bruger
15. marts 2011 - 18:12#10
jo tak, men der står jo "or" på, så godt som, alle sider : ) - og søgeboksen i toppen ville ikke være med: "3 chars at least".
Jeg stryger point'ene selv - for "short-circuit" og fordi jeg har så få : )
Prøv nu Google søgningen. Man skal ikke glemme, at Google er en 'intelligent' søgemaskine. Den kan sagtens regne ud, at 'or' er noget specielt, når du søger under php.net ;o)
Ellers søger man jo bare på "or operator" eller noget i den stil. Det kræver selvfølgelig, man ved, hvad man gør og at den slags er operatorer.
Endnu en god grund til at spise manualer og dokumentations dokumenter til morgenmad, frokost og aftensmad - og skulle man trænge til en mellemmad, kan man jo altid nappe et whitepaper. Det feder også langt mindre end pizza og cola *D
- og skulle du være vegetar eller veganer, napper du selvfølgelig bare et green paper i stedet :D
Synes godt om
Slettet bruger
15. marts 2011 - 23:26#13
: )
Du har givetvis ret. Det er bare svært, at tage sig tid til andet end det, man lige står og skal bruge, her og nu. Og så snart ens umiddelbare problem er løst, er man videre til det næste..
Men måske, hvis man simpelthen beslutter at afsætte præcis 2 timer hver dag til uddannelse - på bekostning af den daglige dosis Simpsons og Kongen af Queens..
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.