Det finns flera vanliga PHP buggar som programmerare inför när man skriver PHP-kod . Några av de buggar orsakar felmeddelanden från tolken , men felmeddelandena ofta inte avser själva bugg och kan peka på en helt annan linje i skriptet . Andra buggar inte orsakar felmeddelande alls men få programmet att bete sig annorlunda än avsett . Det är bra att se över dessa vanliga fel , eftersom dessa misstag görs av nybörjare och erfarna programmerare likadana . Använda en tilldelningsoperator i ett villkorligt uttryck
likhetstecknet är ett uppdrag operatör i PHP . Exempelvis tilldelar följande uttalande värdet fem till variabeln $ x :
$ x = 5 ;
två likhetstecken tillsammans gör en villkorlig operatör . Exempelvis tilldelar följande uttalande värdet tre till variabeln $ y , om variabeln $ x är lika med fem :
if ( $ x == 5 ) $ y = 3 ;
en vanlig PHP bugg är att utelämna en av de likhetstecken i det villkorliga uttrycket . Detta gör att tolken att utföra ett uppdrag och sedan en villkorlig utvärdering av resultatet av uppdraget , för vilka alla icke - noll värde kommer att utvärdera till exempel överväga följande uttalande " true ". :
if ( $ x = 5 ) $ y = 3 ;
variabeln $ y alltid kommer att vara lika med tre , eftersom värdet fem tilldelas , i stället för i förhållande till , variabeln $ x . Sedan fem är icke - noll , kommer resultatet alltid utvärderas till " sant".
Utelämnande Avslutande citat från en String
annan vanlig PHP bugg inträffar när du inte riktigt stänga en sträng med ett avslutande citat . Det är lätt att göra det , speciellt om du blandar enkla och dubbla citattecken i samma sträng . Det är ibland svårt att spåra källan till felet eftersom felmeddelandet kan vara helt annorlunda från det verkliga problemet , och tolken ofta pekar på en linje som är flera rader tidigare där det verkliga problemet är . Detta beror på att tolken fortsätter att försöka bearbeta koden trots den saknade citat. Betrakta följande script :
< php $ sträng1 = ' Och hon sa , " Jag undrar varför ? " , $ Sträng2 = ' Och han svarade: " Jag tror jag vet svaret ! " ? , " , om ( $ plot_path1 ) echo $ string1 , elseecho $ string2 ,
Denna kod kommer att generera en " oväntad T_STRING " fel som pekar på raden som innehåller " om " uttalande , som är två rader nedan där det verkliga problemet uppstår .
glömmer " $ " Vid växling mellan språk
program
PHP har ofta både HTML-kod och JavaScript -kod varvas med PHP-skript . När du växlar mellan PHP och JavaScript , är det lätt att glömma bort vilket språk du använder och att anta normer fel skriptspråk . Ett vanligt misstag är att utelämna dollartecken framför en PHP variabel , eftersom det krävs i PHP men inte i JavaScript . Till exempel , utelämnar följande skript dollartecken från variabeln " i" i " för " loop efter JavaScript kodavsnitt : ?
< Php $ total = sum ( $ delar ) ; ? . ? >