Kom ihåg mig?
Home Menu

Menu


Knasighets-patch för PHP?

Ämnesverktyg Visningsalternativ
Oläst 2007-04-21, 14:21 #1
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Jag är jäkligt less på PHPs stora mängder dumheter. Har googlat lite efter någon som tillhandahåller små patchar för att rätta dessa dumheter men hittar ingen. Någon som känner till något sådant?

Ett par exempel på, i min mening, idioti:
* isset() returnerar false när argumentet är NULL.
* HTTP-statuskoden för allvarliga fel (FATAL ERROR t.ex) är 200.

Man kan tänka sig att ta bort möjligheten för korkad konfiguration såsom att aktivera magic quotes och "rätta" ordningen för argumenten till en del funktioner. Men i första hand handlar det att rätta idioti som inte går att komma runt med konfiguration eller PHP-kod.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-04-21, 14:38 #2
Bamse Bamse är inte uppkopplad
Nykomling
 
Reg.datum: Aug 2003
Inlägg: 7
Bamse Bamse är inte uppkopplad
Nykomling
 
Reg.datum: Aug 2003
Inlägg: 7
Citat:
Originally posted by kullervo@Apr 21 2007, 13:21
Jag är jäkligt less på PHPs stora mängder dumheter. Har googlat lite efter någon som tillhandahåller små patchar för att rätta dessa dumheter men hittar ingen. Någon som känner till något sådant?
Ett par exempel på, i min mening, idioti:
* isset() returnerar false när argumentet är NULL.
* HTTP-statuskoden för allvarliga fel (FATAL ERROR t.ex) är 200.
Man kan tänka sig att ta bort möjligheten för korkad konfiguration såsom att aktivera magic quotes och rätta ordningen för argumenten till en del funktioner. Men i första hand handlar det att rätta idioti som inte går att komma runt med konfiguration eller PHP-kod.


En icke definierad variabel har värdet NULL (ej att förväxlas med null byte, alltså \0)
Därför returnerar också isset() false för värdet NULL

Exempel:
<?php
var_dump($test);
?>

skriver ut NULL förutom den notice som genereras om undefined variable


Ang att 'Fatal error' borde ge annan statuskod än 200 så har detta debatterats och diskuterats om och om igen många gånger under åren. Finns dock många faktorer att ta hänsyn till, här är t.ex. lite diskussion kring det:

http://bugs.php.net/bug.php?id=18824
Bamse är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-04-21, 21:45 #3
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Ursprungligen postat av Bamse
En icke definierad variabel har värdet NULL (ej att förväxlas med null byte, alltså 0)
Därför returnerar också isset() false för värdet NULL
Ett exempel på när jag uppfattar det som ett problem är när en cell i en array har värdet NULL. Men visst köper jag att den cellen då inte är "definierad". Istället för isset() kan man i det fallet använda array_key_exists() vilket löser uppgiften.

Citat:
Ursprungligen postat av Bamse
Ang att Fatal error borde ge annan statuskod än 200 så har detta debatterats och diskuterats om och om igen många gånger under åren. Finns dock många faktorer att ta hänsyn till, här är t.ex. lite diskussion kring det:
http://bugs.php.net/bug.php?id=18824
Dom antyder att det går att fånga felet i en egenskriven felhanterare. Om så är fallet så håller jag med om att 200 är en lämplig statuskod vid Fatal error, men jag har aldrig lyckats med det. Om så inte är fallet tycker jag att man kan kompromissa mycket för att få till statuskoden eftersom jag anser att det är ett stort problem.

Hur som helst finns det en hel del tokigheter.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017