FAQ |
Kalender |
2011-05-03, 21:54 | #11 | ||
|
|||
Medlem
|
Citat:
|
||
Svara med citat |
2011-05-03, 23:23 | #12 | ||
|
|||
Medlem
|
Det är ju bara om du själv lyckas skriva över $_POST med din egen kod som den inte är en array.
T.ex: $_POST = null; |
||
Svara med citat |
2011-05-04, 01:23 | #13 | ||
|
|||
Klarade millennium-buggen
|
Citat:
All logik som görs på mer än ett ställe skall vara i en funktion för att underlätta. Eh, var när hur? Koden är dessutom skriven direkt från huvudet, och var tänkt som exempel. Som kommer att producera en NOTICE om $_POST inte är satt. Senast redigerad av Jonas den 2011-05-04 klockan 01:28 |
||
Svara med citat |
2011-05-04, 06:33 | #14 | |||
|
||||
Bara ett inlägg till!
|
Din jämförelse med false ska inverteras. Just nu säger du att om värdet inte är satt så ska du använda det.
Den logik du försöker låta bli att upprepa är rätt meningslös. Det blir ju lika mycket kod att skriva, bara att du skriver post() och skippar arrayens namn istället för isset(), och det är tveksamt om det kommer behöva göras ändringar i framtiden. Jag tycker det blir klarare att bara göra issetjämförelsen öppet istället för att lägga den i en funktion som potentiellt göra många fler saker. Men samtidigt håller jag inte riktigt med i all kritik mot metoden. Om det fungerar för dig och dina projekt är det antagligen bra kod, och jag kan förstå att vissa inte vill skriva $_POST överallt. Och du har rätt i att vissa andra förslag ger notiser - syndigt värre! |
|||
Svara med citat |
2011-05-04, 09:18 | #15 | |||
|
||||
Bara ett inlägg till!
|
Om jag förstår dig rätt så vill du göra följande:
[pseudokod] if(är_satt($_POST)) { //validera under-element till POST:en här samt gå vidare med hanteringen av dessa } [/pseudokod] Detta vill du göra för att helt enkelt slippa gå in och ladda din inlänkade fil om du inte kommer från rätt formulär / om något bara klickat på "submit" / annan mystisk anledning? Jag tror nog att du bör kolla på att revidera din design istället för att bara hitta en lösning som fungerar. Ditt pattern verkar vara ganska sårbart mot förändringar. |
|||
Svara med citat |
2011-05-04, 17:30 | #16 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Men i det exemplet hjälper det dig ju inte alls eftersom du ändå tvingas göra i stort sett samma kontroll i koden ändå . Det gör ju att funktionen inte förenklar och gömmer undan kod vilket är hela anledningen till att man placerar sådan logik som används på flera ställen i en funktion. Jämför: Citat:
PHP-kod:
|
|||
Svara med citat |
2011-05-04, 19:16 | #17 | |||
|
||||
Har WN som tidsfördriv
|
Är $_POST satt av servern är det en array, annars returnerar väl alla de där kontrollerna false, eller åtminstone något som evalueras till fasle i en if-sats. Har inte kolla på alla i huvudet dock så jag kan ha fel.
|
|||
Svara med citat |
2011-05-04, 21:07 | #18 | ||
|
|||
Medlem
|
Testa kör följande på din dator:
error_reporting(-1); if(!$_POST) echo 'test'; Det genererar i alla fall ingen E_NOTICE i min logg. Dessutom så används överallt i manualen på php.net... Citat:
|
||
Svara med citat |
2011-05-05, 06:57 | #19 | ||
|
|||
Medlem
|
Citat:
|
||
Svara med citat |
2011-05-06, 00:31 | #20 | |||
|
||||
Har WN som tidsfördriv
|
Finns ju ingen anledning att skiva över den. Om man skriver kod där det kan hända har man nog gjort något väldigt fel och då bör man nog tänka om lite i och för sig.
|
|||
Svara med citat |
Svara |
|
|