Felles PHP Bugs

Felles PHP Bugs


Det finnes flere vanlige PHP bugs som programmerere innføre når du skriver PHP-kode. Noen av feilene føre til feilmeldinger fra tolken, men feilmeldingene ofte ikke forholder seg til faktiske feil, og kan vise til en helt annen linje i manuset. Andre bugs ikke forårsake noen feilmelding i det hele tatt, men føre til at programmet oppfører seg annerledes enn forutsatt. Det er nyttig å gjennomgå disse vanlige feilene, fordi disse feilene er gjort av nybegynnere og erfarne programmerere alike.

Ved hjelp av en oppgave Operatør i en Betinget Expression

Likhetstegnet er et oppdrag operatør i PHP. For eksempel tildeler følgende uttalelse verdien fem til variabelen $ x:

$ X = 5;

To like tegn sammen lage en betinget operatør. For eksempel tildeler følgende uttalelse verdien tre til variabelen $ y, hvis variabelen $ x er lik fem:

if ($ x == 5) $ y = 3;

En vanlig PHP feil er å utelate en av de likhetstegn i betingelsesuttrykket. Dette fører tolken til å utføre et oppdrag, og deretter en betinget evaluering av resultatet av oppdraget, som en hvilken som helst annen verdi enn null vil vurdere å "true". For eksempel vurdere følgende uttalelse:

if ($ x = 5) $ y = 3;

Variabelen $ y vil alltid være lik tre, fordi verdien fem er tilordnet til, i stedet for i forhold til, den variable $ x. Siden fem er null, vil resultatet alltid vurdere å "true".

Utelate en etterfølgende sitat fra en streng

En annen vanlig PHP feil oppstår når du ikke skal lukke en streng med en etterfølgende sitat. Det er lett å gjøre dette, spesielt hvis du blander enkle og doble anførselstegn i samme streng. Det er noen ganger vanskelig å spore kilden til denne feilen fordi feilmeldingen kan være ganske forskjellig fra det virkelige problemet, og tolken ofte peker på en linje som er flere linjer forbi der det virkelige problemet er. Dette er fordi tolken fortsetter å forsøke å behandle kode til tross for den manglende sitat. Tenk på følgende skript:

<? Php
$ Streng1 = 'Og hun sa: "Jeg lurer på hvorfor?";
$ String2 = 'Og han svarte: "Jeg tror jeg vet svaret!"';
if ($ plot_path1)
echo $ string1;
ellers
echo $ string2;

Denne koden vil generere en "uventet T_STRING" feil som peker til linjen som inneholder "hvis" statement, som er to linjer under der den virkelige problemet oppstår.

Glemme "$" når du bytter mellom språk

PHP-programmer har ofte både HTML markup og Javascript-kode ispedd PHP script. Når du bytter mellom PHP og Javascript, er det lett å glemme hvilket språk du bruker, og å vedta standarder for feil skriptspråk. En vanlig feil er å utelate dollartegn foran en PHP variabel, siden det er nødvendig i PHP, men ikke i Javascript. For eksempel utelater følgende skript dollartegnet fra variabelen "i" i "for" loop etter Javascript kodebit:

<? Php
$ Total = sum ($ deler);
?>
<Script type = "text / javascript">
.? Document.getElementById ( "totalfield") verdi = <? Php echo $ totalt; ?>;
</ Script>
for (i = 0; i <25; i ++) {
prosess (element [i]);
}
?>
Tolken peker på linje med feilen, men utsteder feilmeldingen "uventet '=', ventet ';' "

Inkludert en Semicolon Etter en "hvis" Linje

Siden de fleste linjer i PHP ende i et semikolon, er en vanlig PHP feil å inkludere et semikolon etter en linje med en "hvis" statement. Dette kan være en vanskelig feil å spore opp fordi det ikke utløser en feilmelding. For eksempel vil følgende skript alltid echo "Lav på inventar!" på grunn av semikolon ved enden av linjen med "hvis" setningen. Semikolon eliminerer effektivt betinget uttrykk fordi det sier opp "hvis" statement uten å evaluere et uttrykk.

<? Php
if ($ teller <5);
{
echo "Lav på inventar!";
}