![]() |
Dubbla utropstecken i PHP
Har stött på en ovanlig sätt att använda utropstecknet (!) som används som negerande operator i PHP.
I en kodbit som jag hittade http://sourceforge.net/projects/phpexcelreader/ upptäcker jag dubbla utropstecken före vissa uttryck. Det skulle bli en dubbel negation men det verkar lite onödigt. Effekten borde bli likadan med en enkel typecasting (bool)$expression eller? Så här ser det ut på en hel del ställen: Kod:
return !!$this->colInfo[$sheet][$col]['hidden']; |
Ja, effekten borde bli densamma som en typecast till bool. Jag har sett liknande ett par gånger tidigare. Vill du verkligen förvirra nästa programmerare slänger du på några utropstecken till!
Tydligast är annars att skriva just (bool) så det blir tydligt vad som händer. Vid en skumläsning kanske någon missar att det är två utropstecken, eller blir lika förvirrad som du angående syftet med koden. |
Ja, såg för gräsligt ut så jag körde sök och ersätt på skiten.
|
Kanske inte samma sak, men kan det inte vara så att man försäkrar sig om att den inte får finnas, ungefär som
Kod:
if $apa === 0 |
Citat:
|
Den används inte i frågesatser utan vid tilldelning av värden. Så jag antar att det är ett sätt att sätta typ på variabeln.
Eftersom skriptet ifråga jobbar mycket med att iterera över arrayer och författarna hoppat över den fina funktionen isset() så får man ett par ton notices om missade index när man kör. Blir till att skriva om och göra rätt. Det är nackdelen med att använda färdiga skript, man måste skriva om dem för att de ska fungera som man vill. |
Citat:
|
Citat:
|
Jag vill inga notices ha. Rent och snyggt ska det vara i loggarna.
Dessutom ska jag tydligen from php 5.3 kunna skriva $resultat = (isset($variabel)) ? : $default; istället för $resultat = (isset($variabel)) ? $variabel : $default; Alltid en förbättring. |
Citat:
|
Alla tider är GMT +2. Klockan är nu 06:27. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson