En offset fel i PHP är ett allvarligt fel som uppstår när du felaktigt försöker använda ett indexvärde för en matris på en sträng variabel . När detta fel inträffar visar utförandet av din PHP programmet stannar och webbläsaren ett felmeddelande som beskriver problemet och där den begicks . Lösningar öppna för du menar att göra andra förändringar, såsom att variabelnamn . Arrayer och strängar
En sträng är en sekvens av tecken inom citattecken , till exempel ett namn eller en mening . Du kan använda bokstäver, siffror eller skiljetecken i en sträng . En array är en sekvens av objekt eller värden som mappar varje objekt till en nyckel. Du kan inkludera flera olika datatyper i en array , inklusive strängar, heltal eller booleska värden . I PHP får du värdet av en sträng variabel genom att använda variabelns namn , utan att använda en array värde , måste du ringa det med ett indextal .
Förskjutningsfel
PHP får du " ödesdigert fel : kan inte använda string offset som en array " felmeddelande när du försöker använda en sträng variabel som en matris . Till exempel kan du skapa en sträng som heter " $ myvar " och tilldela ett värde till den . Om du försöker få värdet genom att skriva " $ myvar [ 0 ] " ( eller något annat index värde ) , kommer PHP tillbaka förskjutningsfelet eftersom den inte kan hitta indexvärdet i minnet , eftersom - tekniskt - index existerar inte .
resolutioner
att förhindra ser denna dödliga PHP fel , kan du använda " array ( ) " språk konstruera till re - kastade en sträng variabel som en matris . Detta kommer dock att radera någon värdet lagrat av strängvariabeln på tiden. Alternativt kan du skapa en annan variabel som en matris och kopiera värdet från strängen till en av sina index . Detta bevarar värdet i strängen , men innebär att du måste använda en annan variabel namn för att komma åt det , så om du använder denna variabel någon annanstans i programmet , måste du ändra namnen på dessa platser .
Överväganden
Vissa webbläsare kommer att försöka kompensera för detta fel genom att försöka gissa det värde du vill ha i din PHP- program . Till exempel , om du skapar en sträng som heter " $ MyString " med " My string " som värde och skriv sedan " $ MyString [ 3 ] " för att få den fjärde index från det , kan det tillbaka bara bokstaven " , s ", som är det fjärde tecknet i strängen. Medan detta undviker orsakar ett allvarligt fel , kan det skada ditt program totalt .