PHP parse/sintakses kļūdas; un kā tās novērst?

Ikvienam rodas sintakses kļūdas. Pat pieredzējuši programmētāji pieļauj pārrakstīšanās kļūdas. Jaunpienācējiem tā ir tikai daļa no mācīšanās procesa. Tomēr bieži vien ir viegli interpretēt kļūdu ziņojumus, piemēram:

PHP sintakses kļūda: sintakses kļūda, negaidīta '{' in index.php on line 20. Negaidītais simbols ne vienmēr ir īstais vaininieks. Taču rindas numurs sniedz aptuvenu priekšstatu par to, kur sākt meklēšanu. Vienmēr aplūkojiet koda kontekstu. Sintakses kļūda bieži vien slēpjas minētajā vai priekšējās koda rindās. Salīdziniet savu kodu ar sintakses piemēriem rokasgrāmatā. Lai gan ne katrs gadījums atbilst otram. Tomēr ir daži vispārīgi soļi, kā atrisināt sintakses kļūdas. Šajā atsaucē ir apkopotas biežāk sastopamās kļūdas:

  • PHP rokasgrāmata vietnē php.net un tās dažādie valodas žetoni.
  • Vai Vikipēdijas sintakses ievads par PHP.
  • Un visbeidzot, protams, mūsu php tag-wiki. Lai gan Stack Overflow ir laipni gaidīti arī iesācēji programmētāji, tā galvenokārt ir orientēta uz profesionāliem programmēšanas jautājumiem.
  • Atbildes uz ikviena lietotāja kodēšanas kļūdām un šaurām pārrakstīšanās kļūdām lielākoties tiek uzskatītas par ārpus tēmas.
  • Tāpēc, lūdzu, veltiet laiku, lai izpildītu [pamata soļus] (https://stackoverflow.com/a/18050072), pirms rakstīt sintakses labošanas pieprasījumus.
  • Ja jums tas tomēr ir jādara, lūdzu, parādiet savu risināšanas iniciatīvu, labojumu mēģinājumus un savu domāšanas procesu par to, kas izskatās vai varētu būt nepareizi. Ja jūsu pārlūka rāda kļūdu ziņojumus, piemēram, "SyntaxError: illegal character", tad tas patiesībā nav saistīts ar [tag:php]-, bet gan ar [tag:javascript]-sintakses kļūdu.

    Sintakses kļūdas, kas radušās piegādātāja kodā: Visbeidzot, ja sintakses kļūda nav radusies, rediģējot jūsu kodu bāzi, bet gan pēc ārējās piegādātāja pakotnes instalēšanas vai atjaunināšanas, tā varētu būt saistīta ar PHP versijas nesavietojamību, tāpēc pārbaudiet piegādātāja prasības un savas platformas iestatījumus.

Risinājums

Kādas ir sintakses kļūdas?

PHP pieder C stila un imperatīvo programmēšanas valodām. Tai ir stingri gramatikas noteikumi, no kuriem tā nevar atgūties, sastopoties ar nepareizi izvietotiem simboliem vai identifikatoriem. Tā nevar uzminēt jūsu kodēšanas nodomus.

Svarīgākie padomi

Ir daži pamata piesardzības pasākumi, kurus vienmēr varat veikt:

  • Lietojiet pareizu koda atkāpi vai pieņemiet kādu cildenu kodēšanas stilu. Lasāmība novērš pārkāpumus.

  • Izmantojiet IDE vai PHP redaktoru ar sintakses izcelšanu. Tas palīdz arī ar iekavām/uzkavju līdzsvarošanu.

  • Izlasiet valodas atsauces un piemērus rokasgrāmatā. Divas reizes, lai kļūtu nedaudz lietpratējs.

    Kā interpretēt analizatora kļūdas

    Tipisks sintakses kļūdas ziņojums skan šādi:

    Parsēšanas kļūda: sintakses kļūda, negaidīts T_STRING, gaidīts ';' in file.php on line 217. Tajā ir norādīta iespējamā sintakses kļūdas vieta. Skatiet minēto faila nosaukumu un rinķes numuru. Monikers, piemēram, T_STRING, paskaidro, kuru simbolu analizators/tokenizators nevarēja apstrādāt. Tomēr tas nav obligāti sintakses kļūdas cēlonis. Svarīgi ir aplūkot arī priekšējās koda rindas. Bieži vien sintakses kļūdas ir tikai neveiksmes, kas notikušas agrāk. Kļūdas rindas numurs ir tikai vieta, kur analizators galīgi atteicās apstrādāt visu.

    Sintakses kļūdu risināšana

    Ir daudzas pieejas, kā sašaurināt un novērst sintakses ķibeles.

  • Atveriet minēto avota failu. Aplūkojiet minēto koda rindu.

    • Parasti šajā vietā jūs atradīsiet vainīgo, ja runa ir par aizbēgušām virknēm un nepareizi izvietotiem operatoriem.
    • Izlasiet rindu no kreisās puses uz labo un iedomājieties, ko katrs simbols dara.
  • Regulārāk jums jāskatās arī uz priekšējām rindiņām.

    • Jo īpaši iztrūkstošie ; semikolu punkti trūkst iepriekšējo rindu galos/izteikumos. (Vismaz no stilistiskā viedokļa. )
    • Ja {{ koda bloki } ir nepareizi slēgti vai ielikti, iespējams, ka jums būs nepieciešams izpētīt vēl dziļāk avota kodā. Izmantojiet pareizu koda atkāpi, lai to vienkāršotu.
  • Aplūkojiet sintakses krāsojumu!

    • Virknēm, mainīgajiem un konstantēm jābūt dažādās krāsās.
    • Arī operatoriem +-*/. vajadzētu būt atšķirīgi iekrāsotiem. Pretējā gadījumā tie var atrasties nepareizā kontekstā.
    • Ja redzat, ka virknes krāsojums stiepjas pārāk tālu vai pārāk īsi, tad ir atrasts neizšķirts vai iztrūkst noslēdzošais " vai ' virknes marķieris.
    • Arī divu vienādas krāsas pieturzīmju atrašanās blakus vienai otrai var nozīmēt problēmas. Parasti operatori ir vientuļi, ja tie nav ++, -- vai iekavās, kas seko operatoram. Divas virknes/identifikatori, kas atrodas tieši viens aiz otra, vairumā gadījumu ir nepareizi.
  • Belta atstarpe ir jūsu draugs. Ievērojiet vienu kodēšanas stilu.

  • Uz laiku sadaliet garas rindas.

    • Starp operatoriem vai konstantēm un virknēm var brīvi pievienot jaunas rindiņas. Pēc tam analizators konkretizēs rindas numuru, lai noteiktu analizēšanas kļūdas. Tā vietā, lai apskatītu ļoti garu kodu, jūs varat izolēt iztrūkstošo vai nepareizi izvietoto sintakses simbolu.
    • Sadaliet sarežģītus if paziņojumus atsevišķos vai ievietotos if nosacījumos.
    • Garu matemātisko formulu vai loģisko ķēžu vietā izmantojiet pagaidu mainīgos, lai vienkāršotu kodu. (Vieglāk lasāms = mazāk kļūdu.)
    • Pievienojiet jaunas rindkopas starp:
      1. Kods, kuru var viegli identificēt kā pareizu,
      2. daļām, par kurām neesat pārliecināts,
      3. Un rindas, par kurām analizators sūdzas.
        Garu koda bloku sadalīšana pa daļām reāli palīdz atrast sintakses kļūdu izcelsmi.
  • Komentējiet kļūdaino kodu.

    • Ja nevarat noteikt problēmas avotu, sāciet komentēt (un tādējādi uz laiku noņemt) koda blokus.
    • Tiklīdz esat atbrīvojies no analizēšanas kļūdas, jūs esat atradis problēmas avotu. Aplūkojiet to rūpīgāk.
    • Dažreiz jūs vēlaties uz laiku noņemt veselus funkciju/metožu blokus. (Nesakrītošu loka ieloku un nepareizi ievilkta koda gadījumā.)
    • Ja nevarat atrisināt sintakses problēmu, mēģiniet pārrakstīt komentētās sadaļas no jauna.
  • Ja esat iesācējs, izvairieties no dažām mulsinošām sintakses konstrukcijām.

    • Trīskāršais ? : nosacījumu operators var sablīvēt kodu un ir patiešām noderīgs. Taču ne visos gadījumos tas palīdz lasāmībai. Dodiet priekšroku vienkāršiem if izteikumiem, kamēr tie ir nepārvērsti.
    • PHP'alternatīvā sintakse (if:/elseif:/endif;) ir izplatīta šabloniem, bet, iespējams, ir mazāk saprotama nekā parastie { kods } bloki.
  • Visbiežāk sastopamās kļūdas jaunpienācējiem ir šādas:

    • Trūkst semikolu ; izteikumu/rindu pabeigšanai.
    • Neatbilstošas virknes pēdiņas " vai ' un neizceltas pēdiņas.
    • Aizmirsti operatori, jo īpaši virknes . apvienošanai.
    • Nesabalansēti (``nosaites iekavās)`. Saskaitiet tos ziņotajā rindā. Vai to ir vienāds skaits?
  • Neaizmirstiet, ka vienas sintakses problēmas atrisināšana var atklāt nākamo.

    • Ja viena problēma izzūd, bet cita parādās kādā no zemāk esošajiem kodiem, jūs lielākoties esat uz pareizā ceļa.
    • Ja pēc rediģēšanas tajā pašā rindā parādās jauna sintakses kļūda, iespējams, jūsu mēģinājums veikt izmaiņas bija neveiksmīgs. (Tomēr ne vienmēr.)
  • Atjaunojiet iepriekš darbojošā koda rezerves kopiju, ja nevarat to novērst.

    • Ievietojiet avota koda versiju sistēmu. Jūs vienmēr varat apskatīt bojātās un pēdējās darba versijas diff. Tas var būt pamācošs, lai noskaidrotu, kāda ir sintakses problēma.
  • Neredzamas klaiņojošas Unicode zīmes: Dažos gadījumos ir nepieciešams izmantot hexeditoru vai citu redaktoru/skatītāju savam avotam. Dažas problēmas nevar atrast, vienkārši apskatot jūsu kodu.

    • Izmēģiniet grep --color -P -n "\[\x80-\xFF\]" file.php kā pirmo līdzekli, lai atrastu simbolus, kas nav ASCII.
    • Jo īpaši BOM, nulles platuma atstarpes vai nesaliekamās atstarpes un "gudrās" pēdiņas regulāri var nokļūt avota kodā.
  • Pievērsiet uzmanību tam, kāda tipa rindu lauzumi tiek saglabāti failos.

    • PHP vienkārši respektē \n jaunas rindiņas, nevis \r kareivju atgriešanu.
    • Tas reizēm ir problēma MacOS lietotājiem (pat OS  X nepareizi konfigurētu redaktoru gadījumā).
    • Bieži vien problēma rodas tikai tad, ja tiek izmantoti vienrindas // vai # komentāri. Daudzrindu /*...*/ komentāri reti traucē analizētājam, ja tiek ignorēti rindu pārrāvumi.
  • Ja jūsu sintakses kļūda netiek pārraidīta tīmeklī: gadās, ka jūsu datorā ir sintakses kļūda. Taču, publicējot to pašu failu tiešsaistē, tā vairs netiek konstatēta. Tas var nozīmēt tikai vienu no divām lietām:

    • Jūs apskatāt nepareizu failu!
    • Vai arī jūsu kods satur neredzamu, apmaldījušos Unicode (skat. iepriekš). To var viegli noskaidrot: Vienkārši nokopējiet savu kodu no tīmekļa veidlapas atpakaļ teksta redaktorā.
  • Pārbaudiet savu PHP versiju. Ne visas sintakses konstrukcijas ir pieejamas visos serveros.

    • php -v komandrindas interpretatoram
    • <?php phpinfo();, ja tas tiek izsaukts caur tīmekļa serveri.
      Tie ne vienmēr ir vienādi. Jo īpaši, strādājot ar karkasiem, jums tie būs jāsaskaņo.
  • Neizmantojiet PHP'rezervētos atslēgvārdus kā funkciju/metožu, klašu vai konstantu identifikatorus.

  • Izmēģinājumu un kļūdu metode ir pēdējais līdzeklis. Ja viss pārējais neizdodas, vienmēr varat gūglēt savu kļūdas ziņojumu. Sintakses simbolus nav tik viegli meklēt (tomēr pats Stack Overflow tiek indeksēts ar SymbolHound). Tāpēc var nākties pārlūkot vēl dažas lapas, pirms atradīsiet kaut ko atbilstošu. Papildu norādījumi:

  • PHP atkļūdošanas pamati, autors: David Sklar

  • PHP kļūdu labošana - Jason McCreary

  • PHP kļūdas - 10 biežāk pieļautās kļūdas - Mario Lurig

  • Biežāk sastopamās PHP kļūdas un to risinājumi

  • Kā novērst problēmas un salabot savu WordPress tīmekļa vietni

  • PHP kļūdu ziņojumu ceļvedis dizaineriem - Smashing Magazine

    Baltais nāves ekrāns

    Ja jūsu tīmekļa vietne ir tukša, parasti iemesls ir sintakses kļūda. Atļaujiet to parādīšanu ar:

    • error_reporting = E_ALL
    • display_errors = 1 Jūsu php.ini parasti vai izmantojot .htaccess mod_php, vai pat .user.ini ar FastCGI iestatījumiem. Ieslēgt to bojātā skripta ietvaros ir par vēlu, jo PHP nevar interpretēt/izpildīt pat pirmo rindu. Ātrs risinājums ir izveidot ietinamo skriptu, piemēram, test.php:
<?php
   error_reporting(E_ALL);
   ini_set("display_errors", 1);
   include("./broken-script.php");

Pēc tam izsauciet kļūdaino kodu, piekļūstot šim ietinošajam skripturam. Palīdz arī ieslēgt PHP error_log un ieskatīties savā webserver's error.log, kad skripts sabrūk ar HTTP 500 atbildēm.

Komentāri (2)

Negaidīts T_VARIABLE

"negaidīts T_VARIABLE" nozīmē, ka ir burtiskais $mainīgais nosaukums, kas neatbilst pašreizējai izteiksmes/izteikuma struktūrai.

  1. Trūkst semikola

    Tas visbiežāk norāda uz iztrūkstošu semikolu iepriekšējā rindā. Mainīgo piešķīrumi, kas seko pēc apgalvojuma, ir labs rādītājs, kur meklēt:

            ⇓
     func1()
     $var = 1 + 2; # analizēšanas kļūda +2 rindā
  2. Virknes savienošana

    Bieži sastopama kļūda ir virknes konkatenācija ar aizmirstu . operatoru:

                                    ⇓
     print "Šeit ir vērtība: " $vērtība;

    Btw, jums vajadzētu dot priekšroku virknes interpolācijai (pamata mainīgie dubultās pēdiņās), kad vien tas palīdz lasāmībai. Tas ļauj izvairīties no šīm sintakses problēmām.

    Stīgu interpolācija ir skriptu valodas pamatīpašība. Nav kauns to izmantot. Ignorējiet jebkādus mikrooptimizācijas padomus par to, ka mainīgo . apvienošana ir ātrāka. Tā tā nav.

  3. Trūkst izteiksmes operatoru

    Protams, tāda pati problēma var rasties arī citās izteiksmēs, piemēram, aritmētiskajās operācijās:

                ⇓
     print 4 + 7 $var;

    PHP šeit nevar uzminēt, vai mainīgo vajadzēja saskaitīt, atņemt vai salīdzināt utt.

  4. Saraksti

    Tas pats attiecas uz sintakses sarakstiem, piemēram, masīvu populācijās, kur analizators norāda arī uz paredzamo komatu ,, piemēram:

                                           ⇓
     $var = array("1" => $val, $val2, $val3 $val4);

    Vai funkciju parametru saraksti:

                                     ⇓
     funkcija myfunc($param1, $param2 $param3, $param4)

    Līdzīgi to var redzēt ar list vai global izteikumiem, vai ja for cilpā trūkst ; semikola.

  5. Klases deklarācijas

    Šī analizatora kļūda rodas arī klases deklarācijās. Varat piešķirt tikai statiskas konstantes, nevis izteiksmes. Tādējādi parseris sūdzas par mainīgajiem kā piešķirtiem datiem:

     klase xyz { ⇓
         var $value = $_GET["input"];

    Īpaši šeit var izraisīt nesaskaņoti } aizverošie loka iekavās. Ja metode tiek pārlieku agri pabeigta (lietojiet pareizu atkāpi!), tad klaiņojošais mainīgais parasti tiek nepareizi ievietots klases deklarācijas ķermenī.

  6. Mainīgie pēc identifikatoriem

    Nekādā gadījumā nedrīkst arī mainīgo pēc identifikatora likt tieši aiz identifikatora:

                  ⇓
     $this->myFunc$VAR();

    Btw, šis ir biežs piemērs, kurā, iespējams, bija paredzēts izmantot mainīgais mainīgais. Šajā gadījumā mainīgo īpašību meklēšana ar $this->{"myFunc$VAR"}();, piemēram.

    Paturiet prātā, ka mainīgo mainīgo izmantošanai vajadzētu būt izņēmumam. Jaunpienācēji bieži vien mēģina tos izmantot pārāk pavirši, pat tad, ja masīvi būtu vienkāršāk un piemērotāk.

  7. Trūkst parensu pēc valodas konstrukcijām

    Pārsteidzīga rakstīšana var novest pie tā, ka tiek aizmirsti sākuma iekavās iekavās. if un for un foreach paziņojumiem:

            ⇓
     foreach $array as $key) {

    Risinājums: pievienojiet trūkstošo sākuma ( starp izteikumu un mainīgo.

  8. Else nesagaida nosacījumus

          ⇓
     else ($var >= 0)

    Risinājums: Noņemiet nosacījumus no else vai izmantojiet elseif.

  9. Nepieciešamas iekavās slēgšanai

          ⇓
     funkcija() izmanto $var {}

    Risinājums: Pievienojiet iekavās ap $var.

  10. Neredzams baltais laukums

    Kā minēts atsauces atbildē par "Invisible stray Unicode" (piemēram, non-breaking space), šo kļūdu var redzēt arī šādos gadījumos:

     <?php
                               ⇐
     $var = new PDO(...);

    Tas ir diezgan izplatīts failu sākumā un kopētajā un ielīmētajā kodā. Pārbaudiet ar hekseditoru, vai jūsu kods vizuāli neizskatās pēc sintakses problēmas.

Skatīt arī

Komentāri (0)

Negaidīts T_STRING

T_STRING ir mazliet nepareizs nosaukums. Tas neattiecas uz citātu "string". Tas nozīmē, ka ir sastapts neapstrādāts identifikators. Tas var būt gan brīvs vārds, gan CONSTANT vai funkciju nosaukumi, gan aizmirstas necitētas virknes, gan jebkurš vienkāršs teksts.

  1. Nepareizi citētas virknes

    Tomēr šī sintakses kļūda visbiežāk sastopama nepareizi citētām virknes vērtībām. Jebkurš neierakstīts un apmaldījies `"` vai `'` citāts veido nederīgu izteiksmi: ⇓ ⇓ echo "noklikšķiniet šeit"; Sintakses izcelšana šādas kļūdas padarīs ļoti acīmredzamas. Svarīgi ir atcerēties, ka dubultiekavīšu vai vienkāršo pēdiņu izkļūšanai ir jāizmanto atpakaļsvītras - atkarībā no tā, kura no tām tika izmantota kā [virknes norobežojums][1]. - Ērtības labad, izvadot vienkāršu HTML ar dubultajām pēdiņām iekšpusē, dodiet priekšroku ārējām vienpēdiņām. - Ja vēlaties interpolēt mainīgos lielumus, izmantojiet virknes ar dubultajām pēdiņām, bet tad jāuzmanās no burtisko `"` dubultiekavīšu izvadīšanas. - Garākām izvadām dodiet priekšroku vairākām `echo`/`print` rindiņām, nevis izkļūšanai no ievades un izvades. Vēl labāk apsveriet [HEREDOC][2] sadaļu. Skatīt arī *https://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and-double-quoted-strings-in-php*.
  2. Neaizvērtas virknes

    Ja [izlaižat aizvēršanas `"`][3], tad sintakses kļūda parasti parādās vēlāk. Neaizvērtā virkne bieži vien patērē mazliet koda līdz nākamajai paredzētajai virknes vērtībai: ⇓ echo "Kāds teksts", $a_mainīgais, "un kāda aizbēgusi virkne ; success("finished"); ⇯ Tas'nav tikai burtiskais `T_STRING`s, pret kuru analizators var protestēt. Vēl viens bieži sastopams variants ir [`Neparedzēts '>'`](https://stackoverflow.com/questions/6507796/troubleshooting-parse-error-unexpected-error), ja nav citēts burtiskais HTML.
  3. Neprogrammētas virknes pēdiņas

    Ja *kopējat un ielīmējat* kodu no bloga vai tīmekļa vietnes, dažkārt tiek iegūts nederīgs kods. [Tipogrāfiskās pēdiņas nav][4] tas, ko PHP sagaida: $text = 'Kaut kas kaut kas..' + "these ain't quotes"; Tipogrāfiskās/izprotamās pēdiņas ir Unicode simboli. PHP tās uzskata par daļu no blakus esošā burtciparu teksta. Piemēram, `"šie` tiek interpretēts kā konstantas identifikators. Bet jebkuru nākamo teksta literālu analizators uzskata par tukšu vārdu/T_STRING.
  4. Trūkst semikolu; atkal

    Ja iepriekšējās rindiņās ir izteiksme bez semikola, tad jebkurš nākamais izteikums vai valodas konstrukcija tiek uztverta kā neapstrādāts identifikators: ⇓ func1() function2(); PHP vienkārši nevar zināt, vai jūs gribējāt palaist divas funkcijas vienu pēc otras, vai arī gribējāt to rezultātus reizināt, saskaitīt, salīdzināt vai palaist tikai vienu `|||` vai otru.
  5. Īsās atvērtās birkas un <?xml galvenes PHP skriptos

    Tas ir diezgan neparasts gadījums. Bet, ja ir iespējotas short_open_tags, tad jūs nevarat sākt savus PHP skriptus [ar XML deklarāciju][5]: ⇓ <?xml version="1.0"?> PHP redzēs `<?` un atgūs to sev. Tas nesapratīs, kam bija domāts šis `xml`. Tas tiks interpretēts kā konstanta. Bet `versija` tiks uzskatīta par citu literālu/konstantu. Un tā kā analizators nevar saprast divus secīgus literālus/vērtības bez izteiksmes operatora starp tiem, tas būs analizatora kļūda.
  6. Neredzamas Unicode zīmes

    Sintakses kļūdu visbriesmīgākais cēlonis ir Unicode simboli, piemēram,[6][6][6][7][8][9][9][10][11][12][13][14][14]. PHP atļauj izmantot Unicode simbolus kā identifikatoru nosaukumus. Ja saņemat T_STRING analizatora sūdzību par pilnīgi neiedomājamu kodu, piemēram: <?php print 123; Jums ir jāizmanto cits teksta redaktors. Vai pat hekseditoru. Tas, kas šeit izskatās kā vienkāršas atstarpes un jaunas rindiņas, var saturēt neredzamas konstantes. Uz Java bāzētās IDE dažkārt neņem vērā UTF-8 BOM, kas ir sajaukts iekšpusē, nulles platuma atstarpes, rindkopas atdalītājus u. tml. Mēģiniet visu rediģēt no jauna, noņemt baltās atstarpes un atkal pievienot normālas atstarpes. To var sašaurināt, pievienojot liekus `;` paziņojumu atdalītājus katras rindas sākumā: <?php ;print 123; Papildu `;` semikols šeit pārveidos iepriekšējo neredzamo rakstzīmi par nenoteiktu konstantas atsauci (izteiksme kā paziņojums). Tas savukārt liek PHP radīt noderīgu paziņojumu.
  7. Trūkst `$` zīmes mainīgo nosaukumu priekšā

    [Mainīgie PHP][7] tiek attēloti ar dolāra zīmi, kurai seko mainīgā vārds. Dolāra zīme (`$`) ir [zīme][8], kas apzīmē identifikatoru kā mainīgā nosaukumu. Bez šīs zīmes identifikators varētu būt [valodas atslēgvārds][9] vai [konstante][10]. Šī ir bieži sastopama kļūda, ja PHP kods ir ["tulkots" no citas valodas][11] (C, Java, JavaScript utt.). Šādos gadījumos mainīgā tipa deklarācija (ja oriģinālais kods rakstīts valodā, kas izmanto tipizētus mainīgos) arī var izkļūt un radīt šo kļūdu.
  8. Izbēgušas pēdiņas

    Ja rindā lietojat `\`, tam ir īpaša nozīme. To sauc par "[Escape Character][12]", un parasti tas liek analizatoram nākamo rakstzīmi uztvert burtiski. Piemērs: `echo 'Jim said \'Hello\''';` izdrukās `Jim said 'hello'`. Ja izvairīsieties no virknes noslēdzošās pēdiņas, tā tiks uztverta burtiski, nevis tā, kā paredzēts, t. i., kā drukājamā pēdiņa, kas ir virknes daļa, nevis aizver virkni. Tas parādīsies kā analizēšanas kļūda parasti pēc nākamās virknes atvēršanas vai skripta beigās. Ļoti bieži sastopama kļūda, norādot ceļus Windows: `"C:\xampp\htdocs\"` ir nepareizi. Jums ir nepieciešams `"C:\\xampp\\\htdocs\\"`.
Komentāri (0)