Der er flere almindelige PHP fejl, programmører indføre , når du skriver PHP kode . Nogle af de bugs forårsager fejlmeddelelser fra tolken , men fejlmeddelelser ofte ikke vedrører den faktiske bug og kan pege på en helt anden linje i scriptet. Andre bugs forårsager ikke nogen fejlmeddelelse på alle, men få programmet til at opføre sig anderledes end tilsigtet . Det er nyttigt at gennemgå disse fælles fejl , fordi disse fejl er lavet af begyndere og erfarne programmører ens. Ved hjælp af en Opgave Operator i et betinget udtryk
lighedstegn er en opgave operatør i PHP. For eksempel tildeler følgende erklæring værdien fem til variablen $ x : Hej
$ x = 5;
To lighedstegn tilsammen gør en betinget operatør. For eksempel tildeler følgende erklæring værdien tre til variablen $ y, hvis variablen $ x er lig med fem : Hej
if ($ x == 5) $ y = 3 ,
< p > en fælles PHP bug er at udelade en af de lige tegn i betingede udtryk. Dette bevirker, at tolken til at udføre en opgave og derefter en betinget evaluering på resultatet af opgaven, som enhver ikke- nul værdi vil vurdere til for eksempel følgende erklæring overveje "sande ". : Hej
if ($ x = 5) $ y = 3 ,
variablen $ y vil altid være lig med tre, fordi værdien fem er tildelt , i stedet for i forhold til den variable $ x. Siden fem ikke er nul , vil resultatet altid vurdere til "true ".
Udelade en Trailing citat fra en String
andet fælles PHP bug opstår, når du ikke ordentligt lukke en snor med en afsluttende citat. Det er nemt at gøre dette, især hvis du blander enkelt og dobbelt anførselstegn i samme streng. Det er undertiden vanskeligt at spore kilden til denne fejl , fordi den fejlmeddelelse kan være helt forskellig fra det egentlige problem , og tolken ofte peger på en linje, der er flere linier fortid, hvor det virkelige problem er . Dette er fordi tolken fortsat forsøge og behandle koden på trods af manglende citat . Overvej følgende script : Hej
< php $ streng1 = ' Og hun sagde, "Jeg spekulerer på, hvorfor ?" $ Streng2 =' Og han svarede: "Jeg tror, jeg kender svaret! " ? « ; if ($ plot_path1 ) echo $ streng1 , elseecho $ streng2 ,
Denne kode vil generere en " uventet T_STRING "fejl , der peger på den linje , der indeholder " hvis " erklæring, som er to linjer nedenfor, hvor det virkelige problem opstår.
glemmes "$ " Når skift mellem sprog
PHP -programmer har ofte både HTML markup og JavaScript-kode afbrudt med PHP script. Når du skifter mellem PHP og JavaScript , er det nemt at glemme , hvilket sprog du bruger, og til at vedtage standarderne i den forkerte scriptsprog. En almindelig fejl er at udelade dollartegn foran en PHP variabel , da det er påkrævet i PHP , men ikke i JavaScript. For eksempel udelader følgende script dollar tegn fra variablen " i" i "for" løkken efter JavaScript kodestykke : ?
< Php $ total = sum ( $ dele) ; ? . ? > for (i = 0 ; i < 25, i + +) { processen ( item [ i] );} ? > tolken peger på linjen med fejlen , men udsteder fejlmeddelelsen "unexpected '=' , forventer ';' " < br >
Herunder en semikolon efter en "hvis " Linie
Da de fleste linjer i PHP ende i et semikolon , en fælles PHP bug er at inkludere et semikolon efter en linje med en "hvis" erklæring. Dette kan være en vanskelig fejl at spore ned, fordi det ikke udløser en fejlmeddelelse. For eksempel vil følgende script altid echo " Low på lager ! " På grund af semikolon i slutningen af linjen med " hvis " erklæring . Semikolon eliminerer effektivt den betingede udtryk , fordi det afslutter "hvis" erklæring uden at vurdere et udtryk
< phpif ( $ count < 5) . ? {Echo "Low om opgørelse ! " }