PHP Fatal Feil: Kan ikke bruke String Offset som en matrise

En offset feil i PHP er en fatal feil som oppstår når du feilaktig prøver å bruke en indeksverdi for en rekke på en strengvariabel. Når denne feilen oppstår, gjennomføring av PHP program stopper og nettleseren viser en feilmelding som beskriver problemet og hvor det skjedde. Solutions åpne for deg bety å gjøre andre endringer, for eksempel til variabelnavn.

Matriser og strenger

En streng er en sekvens med tegn som står i anførselstegn, for eksempel et navn eller en setning. Du kan bruke bokstaver, tall eller tegnsetting i en streng. En matrise er en sekvens av gjenstander eller verdier som tilordner hvert element til en tast. Du kan ta med flere forskjellige data typer i en matrise, inkludert strenger, heltall eller boolske verdier. I PHP, får du verdien av en streng variabel ved hjelp av variabel navn, men å bruke en matrise verdi, må du ringe det ved hjelp av en indeks nummer.

Offset Feil

I PHP, får du "fatal feil: kan ikke bruke string offset som en matrise" feil når du prøver å bruke en streng variabel som en matrise. For eksempel kan du lage en streng kalt "$ minvar" og tilordne en verdi til det. Hvis du prøver å få verdien ved å skrive "$ minvar [0]" (eller en annen indeksverdi), vil PHP returnere offset feil fordi den ikke finner indeksverdien i minnet, fordi - teknisk - indeksen ikke eksistere.

resolusjoner

For å unngå å se denne dødelige PHP feil, kan du bruke "array ()" språkkonstrukt å re-kastet en streng variabel som en matrise. Imidlertid vil denne slette en hvilken som helst verdi holdes ved strengvariabelen på tiden. Alternativt kan du lage en annen variabel som en matrise og kopiere verdien fra strengen til en av sine indekser. Dette bevarer verdien i strengen, men betyr at du må bruke en annen variabel navn for å få tilgang til det, så hvis du bruker denne variabelen andre steder i programmet, må du endre navnene på disse stedene.

betraktninger

Noen nettlesere vil forsøke å kompensere for denne feilen ved å prøve å gjette verdien du ønsker i din PHP-programmet. For eksempel, hvis du lager en streng kalt "$ myString" med "My streng" som verdi og skriv "$ myString [3]" for å få den fjerde indeksen fra det, kan det komme tilbake bare bokstaven "s", som er det fjerde tegnet i strengen. Selv om dette unngår forårsaker en fatal feil, kan dette skade programmet generelt.