Gå til innhold

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

Videoannonse
Annonse
Er enkelt nok bare å bruke cast.

 

$varint = (int)$var;

$varfloat = (float)$var;

$vararray = (array)$var;

$varstring = (string)$var;

$varbool = (bool)$var;

6269911[/snapback]

 

Jeg blir litt skremt om man bruker typecasting i et typesvakt språk, selv om det er mulig. Nei, styr unna det og valider input med funksjoner som is_numeric(), empty() osv.

Man bør være strenge på validering av input fra brukeren. Programmer defensivt er noe man alltid bør ha i bakhodet.

Lenke til kommentar
Gjest Slettet+6132

Å programmere for "worst case scenario" er en grei regel. Tenk alltid at brukeren kan ha onde hensikter, ikke tenk "nei, det kommer sikkert ikke til å skje". Før eller siden finner noen et hull og utnytter det. :)

Lenke til kommentar
JonT: Det kan være intval() er metoden du ønsker.

$var = intval($_GET['var']);

Vil, gitt at $_GET['var'] ikke er numerisk, gi tallet 0, ellers gir den tallet den er.

6269885[/snapback]

Men kan jeg da bruke den sånn som dette:

if(!intval($_GET['var'])) {echo 'Du tastet ikke inn ett tall.'}

Endret av JonT
Lenke til kommentar

Jont: Nei. Hvis tallet er 0, vil den returnere 0, som evalueres til false i en if-setning.

 

Om du skal finne ut om et tall er numerisk, bruk is_numeric(). Hvis du vil finne ut om det er et heltall, kan du vel kanskje prøve å typecaste over til int før du kjører is_int()?

 

Altså:

 

if (!is_int((int)$_GET['var'])) { echo "blabla"; }

Lenke til kommentar
Gjest Slettet-df17e
Er enkelt nok bare å bruke cast.

 

$varint = (int)$var;

$varfloat = (float)$var;

$vararray = (array)$var;

$varstring = (string)$var;

$varbool = (bool)$var;

6269911[/snapback]

 

Jøss, nå har jeg programmert php i snart 3år, men alderi hørt om typecasting i PHP før. Morsomt! Ikke at jeg helt kan se fordelen ved og bruke det.

Lenke til kommentar

Jeg lurer på hvor mange som bruker unittesting i php?

Og om du bruker det, hvilket testbibliotek bruker du?

Bruker du noen annen form for automatisert testing så si gjerne det og (regressiontesting tenker jeg på da først og fremst).

 

Selv bruker jeg unittesting med simpletest. Vurderer å teste litt mer regressiontesting en eller annen gang.

Lenke til kommentar

Alright! Har hatt sommerferie i noen få timer og kjeder meg allerede :p

 

Noen tips til noe jeg kan bruke sommeren på å programmere? Tenker meg noe "stort" og tildels avansert som utnytter de nye mulighetene i PHP5, MySQL5 og mysqli.

 

Template-engine? Bildegalleri? Bah, alt er jo laget fra før av :\

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...