mmmMangeMedlem sedan jan. 2005110 inlägg Dags för omkodning/förbättring av min webbsite.
Felhanteringen ska skötas med hjälp av en egen klass, och jag har då ett objekt som heter $Err, vilket skapas i början av alla sidor.
Dock är det jäkligt drygt att behöva köra
global $Err;
i varenda funktion som behöver komma åt errorobjektet...
Kan man verkligen inte göra den global på nåt smidigt sätt?!?! Låter ju inte klokt att den möjligheten inte skulle finnas i PHP5.
PS: Vill inte använda $_GLOBAL då det förfular/komplicerar koden.
aasahMedlem sedan mars 20034 471 inlägg Enda alternativet är att ha den som inparameter till alla funktioner, ev som defaultvärde:
function something($error=$Err) {
}
functon arg($k, $error=$Err) { }
something();
arg("kalle");
Om du anropar something utan argument får $error värdet av $Err. arg kräver värde på första argumentet medan andra har $Err som defaultvärde. Eventuella defaultvärden måste sitta sist bland argumenten.
Jag tycker också att PHP:s variant att inte se globala variabler är bakvänd - men det är bara att finna sig i. Det kan ju vara ett resultat byggt på att den "snällt" låter dig använda osatta variabler.
MatteMedlem sedan aug. 20002 975 inlägg Jag kan dock inte se varför $GLOBALS['err'] skulle komplicera eller förfula koden så mycket.
Patrik81Medlem sedan okt. 2001538 inlägg Hejsan :)
Skulle man inte kunna bygga Error-klassen som en Singleton, så att man alltid kan få ut refrensen till objektet, där och då man behöver det?
Kanske inte tillämpningsbart i detta fallet, men tanken slog mig iaf.
MVH Patrik
mmmMangeMedlem sedan jan. 2005110 inlägg
Patrik81 skrev:
Hejsan :)
Skulle man inte kunna bygga Error-klassen som en Singleton, så att man alltid kan få ut refrensen till objektet, där och då man behöver det?
Kanske inte tillämpningsbart i detta fallet, men tanken slog mig iaf.
MVH Patrik
Men måste man inte skriva nåt sånthär i varje funktin isåfall:
$Err = ErrorObject::GetInstance();
Då är det ju lättare att skriva
global $Err;
isåfall :)
Patrik81Medlem sedan okt. 2001538 inlägg Hejsan :)
Jo, det stämmer som du säger, att det blir lättare att bara skriva global $Err;
Tanken jag var inne på var dock att jag mer ofta än inte, när jag stött på ämnet globala variabler, fått känslan av att man helst bör undvika dem, eller åtminstone vara väldigt medveten om de variabler man deklarerat globala, då man annars lätt kan råka skriva över dem.
Det är väl kanske inte helt troigt i detta fallet, men i vilket fall, så långt det är möjligt att undvika dem, så brukar jag försöka göra det.
Detta var ju dock bara ett annat perspektiv/förslag så om det känns mer lämpligt med en global $Err, så är det naturligtvis den lösning du skall använda :)
MVH Patrik