/ 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
Option explicit
Fra : Kasper Lindberg


Dato : 09-04-06 08:53

er det muligt at få php-parseren, til at kræve at man erklærer sine
variabler?

det er død irriterende, at den godtager alt, hvad man skriver

ville gerne kunne forbygge fejl som

$antal=0;
while ($antal<10) {
//gør noget
$antla++;
}

og lign.

Venlig hilsen
/Kasper



 
 
Bertel Lund Hansen (09-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-04-06 10:12

Kasper Lindberg skrev:

> ville gerne kunne forbygge fejl som

> $antal=0;
> while ($antal<10) {
> //gør noget
> $antla++;
> }

Workaround: klipogklistr.

Jeg bruger meget at kopiere en hel linje og så fjerne det
overflødige. Altså

1.
$antal=0;
while(
$antal=0;

2.
$antal=0;
while($antal=0;

3.
$antal=0;
while($antal)

osv.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Kasper Lindberg (09-04-2006)
Kommentar
Fra : Kasper Lindberg


Dato : 09-04-06 12:29


"Bertel Lund Hansen" <nospamfilius@lundhansen.dk> skrev i en meddelelse
news:4438cf98$0$11698$ba624c82@nntp02.dk.telia.net...
> Kasper Lindberg skrev:
>
>> ville gerne kunne forbygge fejl som
>
>> $antal=0;
>> while ($antal<10) {
>> //gør noget
>> $antla++;
>> }
>
> Workaround: klipogklistr.
>

væk, duer ikke :P

ej, for usikkert. Hvis jeg alligevel laver fejl, får jeg ingen
fejlmeddelelse.

/Kasper



Konrad (10-04-2006)
Kommentar
Fra : Konrad


Dato : 10-04-06 14:58


"Bertel Lund Hansen" <nospamfilius@lundhansen.dk> wrote in message
news:4438cf98$0$11698$ba624c82@nntp02.dk.telia.net...
> Kasper Lindberg skrev:
>
> > ville gerne kunne forbygge fejl som
>
> > $antal=0;
> > while ($antal<10) {
> > //gør noget
> > $antla++;
> > }
>
> Workaround: klipogklistr.

Nemlig. Der findes i mine øjne to strategier for at undgå den slags :

1. Algoritmisér' *ALT* der overhovedet bare kan tænkes at ville blive brugt
igen. Har du et lille stykke kode hvor du sammenligner om et $antal er f.eks
0, eller en "gør-noget-løkke" som her, så formaliser det og prop det i en
include "biblioteks"-fil. Og man kan godt gøre ovenstående både formaliseret
og dynamisk - f.eks off the head noget ala

function do_loekke($antal, $inc_file) {
include($inc_file);
while ($antal<10) {
//gør noget
call_included_funktion(params);
$antal++;
}
}

Pointen er naturligvis at have et system af include-filer der *kun*
indeholder én funktion med et bestemt navn og bestemte parametre (hvorfor
har vi ikke overloadede funktioner i PHP? grrr) og på den måde vil
ovenstående kunne bruges hver gang man har et tal der skal behandles i en
løkke hvor "noget" skal ske - hvad "noget" er afhænger af funktionen i
includefilen.

2. Copypaste programmering




Michael Zedeler (10-04-2006)
Kommentar
Fra : Michael Zedeler


Dato : 10-04-06 15:08

Konrad wrote:
> Algoritmisér' *ALT* der overhovedet bare kan tænkes at ville blive brugt
> igen. Har du et lille stykke kode hvor du sammenligner om et $antal er f.eks
> 0, eller en "gør-noget-løkke" som her, så formaliser det og prop det i en
> include "biblioteks"-fil. Og man kan godt gøre ovenstående både formaliseret
> og dynamisk - f.eks off the head noget ala
>
> function do_loekke($antal, $inc_file) {
> include($inc_file);
> while ($antal<10) {
> //gør noget
> call_included_funktion(params);
> $antal++;
> }
> }

Det bliver temmelig dyrt i performance-tab. Jeg er alligevel meget glad
for dette princip, så til formålet benytter jeg m4. Så skal man bare
vænne sig til at oversætte sine filer, før de kan bruges.

Jeg mener at m4 er et alt for overset værktøj, der kan bruges til at
lave langt mere vedligeholdelsesvenlig kode.

Mvh. Michael.

--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Erlend Klakegg Bergh~ (10-04-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 10-04-06 15:12

Konrad skrev:
> "Bertel Lund Hansen" <nospamfilius@lundhansen.dk> wrote in message
> news:4438cf98$0$11698$ba624c82@nntp02.dk.telia.net...
>> Kasper Lindberg skrev:
>>
>>> ville gerne kunne forbygge fejl som
>>> $antal=0;
>>> while ($antal<10) {
>>> //gør noget
>>> $antla++;
>>> }
>> Workaround: klipogklistr.
>
> Nemlig. Der findes i mine øjne to strategier for at undgå den slags :
>
> 1. Algoritmisér' *ALT* der overhovedet bare kan tænkes at ville blive brugt
> igen. Har du et lille stykke kode hvor du sammenligner om et $antal er f.eks
> 0, eller en "gør-noget-løkke" som her, så formaliser det og prop det i en
> include "biblioteks"-fil. Og man kan godt gøre ovenstående både formaliseret
> og dynamisk - f.eks off the head noget ala
>
> function do_loekke($antal, $inc_file) {
> include($inc_file);
> while ($antal<10) {
> //gør noget
> call_included_funktion(params);
> $antal++;
> }
> }
>
> Pointen er naturligvis at have et system af include-filer der *kun*
> indeholder én funktion med et bestemt navn og bestemte parametre (hvorfor
> har vi ikke overloadede funktioner i PHP? grrr) og på den måde vil
> ovenstående kunne bruges hver gang man har et tal der skal behandles i en
> løkke hvor "noget" skal ske - hvad "noget" er afhænger af funktionen i
> includefilen.

Eller man kan benytte klasser med statiske metoder, hvor metodene har en
logisk inndeling etter klassenavn. Ved å benytte en __autoload-funksjon
vil klassene lastes inn når de skal brukes.

En slik måte å organisere koden sin på gjør koden mer lesbar, og
samtidig slipper man å ha så masse filer med kun en funksjon i hver.


--

Vennlig hilsen

Erlend Klakegg Bergheim

Kasper Lindberg (10-04-2006)
Kommentar
Fra : Kasper Lindberg


Dato : 10-04-06 19:56


"Konrad" <davidkonrad@gmail.com> skrev i en meddelelse
news:443a6457$0$15791$14726298@news.sunsite.dk...
>
> "Bertel Lund Hansen" <nospamfilius@lundhansen.dk> wrote in message
> news:4438cf98$0$11698$ba624c82@nntp02.dk.telia.net...
>> Kasper Lindberg skrev:
>>
>> > ville gerne kunne forbygge fejl som
>>
>> > $antal=0;
>> > while ($antal<10) {
>> > //gør noget
>> > $antla++;
>> > }
>>
>> Workaround: klipogklistr.
>
> Nemlig. Der findes i mine øjne to strategier for at undgå den slags :
>
> 1. Algoritmisér' *ALT* der overhovedet bare kan tænkes at ville blive
> brugt
> igen. Har du et lille stykke kode hvor du sammenligner om et $antal er
> f.eks
> 0, eller en "gør-noget-løkke" som her, så formaliser det og prop det i en
> include "biblioteks"-fil. Og man kan godt gøre ovenstående både
> formaliseret
> og dynamisk - f.eks off the head noget ala
>
> function do_loekke($antal, $inc_file) {
> include($inc_file);
> while ($antal<10) {
> //gør noget
> call_included_funktion(params);
> $antal++;
> }
> }
>

ser jo meget godt ud, og jeg har da også selv opbygget mig et lille
bibliotek af funktioner.

Ovenstående forhindrer mig dog ikke i at lave en uendelig løkke.
Om "gør noget" er et funktionskald, eller en alm. kodestump er underordnet,
løkken er stadigvæk sårbar overfor stavefejl, da $antal stadigvæk tælles op,
efter funktionskaldet
(løkken var et tænkt eksempel, stavefejl kan forekomme i andre situationer,
hvor inkluderede funktioner ville forvirre mere end det ville gavne)

nu skriver jeg ikke så meget php, at det gør noget, men er det tilladt at
inkludere en funktion inde i en funktion?

<klip>

> 2. Copypaste programmering
>

nej, det skriver jeg for hurtigt til.

grunden til at jeg vil have php, til at kræve at variabler er erklæret, er
at jeg tænker endnu hurtigere end jeg skriver :P


/Kasper



Anders Wegge Jakobse~ (09-04-2006)
Kommentar
Fra : Anders Wegge Jakobse~


Dato : 09-04-06 10:40

"Kasper Lindberg" <NoSp@m.invalid> writes:

> er det muligt at få php-parseren, til at kræve at man erklærer sine
> variabler?
>
> det er død irriterende, at den godtager alt, hvad man skriver
>
> ville gerne kunne forbygge fejl som
>
> $antal=0;
> while ($antal<10) {
> //gør noget
> $antla++;
> }

error_reporting(E_ALL);


--
// Wegge
Weblog: http://blog.wegge.dk
Wiki: http://wiki.wegge.dk

Erlend Klakegg Bergh~ (09-04-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 09-04-06 12:03

Anders Wegge Jakobsen skrev:
> "Kasper Lindberg" <NoSp@m.invalid> writes:
>
>> er det muligt at få php-parseren, til at kræve at man erklærer sine
>> variabler?
>>
>> det er død irriterende, at den godtager alt, hvad man skriver
>>
>> ville gerne kunne forbygge fejl som
>>
>> $antal=0;
>> while ($antal<10) {
>> //gør noget
>> $antla++;
>> }
>
> error_reporting(E_ALL);

Jeg slenger meg på her. Feilraporteringen er satt for lavt, og dermed
vises ikke feilmeldinger om at variabler ikke er opprettet før de
brukes. Ved å bruke error_reporting(E_ALL) får du opp alle feilmeldingene

Nå sidene skal brukes vanlig bør du opprette en error_handler som viser
en standard feilmelding generert av deg fremfor å la PHP gjøre et forsøk
på å vise siden, og for all del; ikke la PHP sin feilmelding komme frem
til brukeren om noe går gale.

"32. Crach Early - A dead program normally does a lot lett damage than a
chrippled one." (Fra boka "The Pragmatic Programmer)

http://php.net/error_reporting
http://php.net/set_error_handler


--

Vennlig hilsen

Erlend Klakegg Bergheim.

Michael Rasmussen (09-04-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-04-06 12:11

On Sun, 09 Apr 2006 13:03:14 +0200, Erlend Klakegg Bergheim wrote:

>
> Jeg slenger meg på her. Feilraporteringen er satt for lavt, og dermed
> vises ikke feilmeldinger om at variabler ikke er opprettet før de brukes.
> Ved å bruke error_reporting(E_ALL) får du opp alle feilmeldingene
Jeg ville nok gøre sådan, så længe min applikation var under udvikling:
error_reporting(E_ALL | E_STRICT);
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erlend Klakegg Bergh~ (09-04-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 09-04-06 12:13

Michael Rasmussen skrev:
> On Sun, 09 Apr 2006 13:03:14 +0200, Erlend Klakegg Bergheim wrote:
>
>> Jeg slenger meg på her. Feilraporteringen er satt for lavt, og dermed
>> vises ikke feilmeldinger om at variabler ikke er opprettet før de brukes.
>> Ved å bruke error_reporting(E_ALL) får du opp alle feilmeldingene
> Jeg ville nok gøre sådan, så længe min applikation var under udvikling:

> error_reporting(E_ALL | E_STRICT);

Naturligvis, og det er vel egentlig ikke noen grunn til at koden skal
være dårligere etter utvikling, så jeg holder fortsatt fast på at man
bør ha en error_handler i det ferdige produktet som trer inn når koden
ikke er god nok.


--

Vennlig hilsen

Erlend Klakegg Bergheim

Michael Rasmussen (09-04-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-04-06 12:18

On Sun, 09 Apr 2006 13:13:22 +0200, Erlend Klakegg Bergheim wrote:

>
> Naturligvis, og det er vel egentlig ikke noen grunn til at koden skal
> være dårligere etter utvikling, så jeg holder fortsatt fast på at man
> bør ha en error_handler i det ferdige produktet som trer inn når koden
> ikke er god nok.
Forrige svar røg åbenbart i /dev/null:-\

Jeg argumenterede ikke imod, at man skal skrive sin egen error_handler,
blot påpegede jeg, at man bør hæve error_niveau til højeste niveau
under udvikling.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erlend Klakegg Bergh~ (09-04-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 09-04-06 12:20

Michael Rasmussen skrev:
> On Sun, 09 Apr 2006 13:13:22 +0200, Erlend Klakegg Bergheim wrote:
>
>> Naturligvis, og det er vel egentlig ikke noen grunn til at koden skal
>> være dårligere etter utvikling, så jeg holder fortsatt fast på at man
>> bør ha en error_handler i det ferdige produktet som trer inn når koden
>> ikke er god nok.

> Forrige svar røg åbenbart i /dev/null:-\
>
> Jeg argumenterede ikke imod, at man skal skrive sin egen error_handler,
> blot påpegede jeg, at man bør hæve error_niveau til højeste niveau
> under udvikling.

Jepp, og jeg er helt enig med deg. :)


--

Vennlig hilsen

Erlend Klakegg Bergheim

Michael Rasmussen (09-04-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-04-06 12:15

On Sun, 09 Apr 2006 13:13:22 +0200, Erlend Klakegg Bergheim wrote:

>
> Naturligvis, og det er vel egentlig ikke noen grunn til at koden skal
> være dårligere etter utvikling, så jeg holder fortsatt fast på at man
> bør ha en error_handler i det ferdige produktet som trer inn når koden
> ikke er god nok.
Jeg argumenterede ikke imod, at man skal skrive sin egen error_handler,
blot påpegede jeg, at jeg ville hæve error_reporting til højeste niveau

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Anders Wegge Jakobse~ (09-04-2006)
Kommentar
Fra : Anders Wegge Jakobse~


Dato : 09-04-06 12:18

Michael Rasmussen <mir@miras.org> writes:

> On Sun, 09 Apr 2006 13:03:14 +0200, Erlend Klakegg Bergheim wrote:
>
> >
> > Jeg slenger meg på her. Feilraporteringen er satt for lavt, og dermed
> > vises ikke feilmeldinger om at variabler ikke er opprettet før de brukes.
> > Ved å bruke error_reporting(E_ALL) får du opp alle feilmeldingene
> Jeg ville nok gøre sådan, så længe min applikation var under udvikling:
> error_reporting(E_ALL | E_STRICT);

Du skal være opmærksom på at E_STRICT først er med fra PHP5

--
// Wegge
Weblog: http://blog.wegge.dk
Wiki: http://wiki.wegge.dk

Kasper Lindberg (09-04-2006)
Kommentar
Fra : Kasper Lindberg


Dato : 09-04-06 12:30


"Erlend Klakegg Bergheim" <bergheim-remove@stud.ntnu.no> skrev i en
meddelelse news:e1aple$g8e$1@orkan.itea.ntnu.no...
> Anders Wegge Jakobsen skrev:
>> "Kasper Lindberg" <NoSp@m.invalid> writes:
>>
>>> er det muligt at få php-parseren, til at kræve at man erklærer sine
>>> variabler?
>>>
>>> det er død irriterende, at den godtager alt, hvad man skriver
>>
>> error_reporting(E_ALL);
>
> Jeg slenger meg på her. Feilraporteringen er satt for lavt, og dermed
> vises ikke feilmeldinger om at variabler ikke er opprettet før de brukes.
> Ved å bruke error_reporting(E_ALL) får du opp alle feilmeldingene
>
> Nå sidene skal brukes vanlig bør du opprette en error_handler som viser en
> standard feilmelding generert av deg fremfor å la PHP gjøre et forsøk på å
> vise siden, og for all del; ikke la PHP sin feilmelding komme frem til
> brukeren om noe går gale.
>
> "32. Crach Early - A dead program normally does a lot lett damage than a
> chrippled one." (Fra boka "The Pragmatic Programmer)
>
> http://php.net/error_reporting
> http://php.net/set_error_handler
>
>

jeg kigger på det
Tak

/Kasper



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

Månedens bedste
Årets bedste
Sidste års bedste