Heredóc-syntaksi ( /həˈredɒk/ ) on tapa määrittää merkkijonomuuttujat ohjelman lähdekoodissa.
Heredoc (kirjaimellisesti englanniksi "here is a document") - syntaksi yksi- tai (usein) monirivisen vapaasti muotoillun tekstin syöttämiseksi "sellaisenaan" muuttujaan. [yksi]
Merkkijonomuuttujia määritettäessä niiden sisältö suljetaan yleensä kerta- tai kaksoislainausmerkkeihin, ja siksi dataan kuuluvien lainausmerkkien väliin tulee käyttää Escape-sarjoja . Heredoc-syntaksin avulla voit määrittää merkkijonon ilman lainausmerkkejä, joten näitä merkkejä ei tarvitse välttää. [2]
Tavallinen merkkijonon määritelmä on:
$s = 'Lainaukset voivat olla \'yksittäisiä\' ; $t = "Lainaukset voivat olla \" double \" " ;heredoc määritelmä ( PHP ):
Heredocin sisällä olevat muuttujat tulkitaan.
$s = <<< EOL Lainausmerkit ovat "yksi" ja "kaksinkertainen". $nimi ja {$foo->bar[1]} EOL ;PHP 5.3+ esitteli version heredocista, jossa muuttujia ei tulkita. Tätä varten tunniste on ympäröitävä yksittäisillä lainausmerkeillä. Sitä kutsutaan nytdociksi.
$s = <<<' EOL ' On olemassa "yksi" ja "kaksois" lainausmerkkejä. $nimi ja {$foo->bar[1]} EOL ;Myös PHP 5.3+ -versiossa tunniste voidaan ympäröidä lainausmerkeillä. Tämä vastaa lainaamatonta versiota.
heredoc määritelmä ( Perl ):
$s = << EOL ; Lainausmerkit ovat "yksi" ja "kaksinkertainen". EOLPerlissä <<<(tai <<Perlissä) sinun on määritettävä tunniste, sitten rivi ja sitten sama tunniste, joka sulkee lisäyksen. [1] [3]
Päättävän tunnisteen on alettava rivin ensimmäisestä sarakkeesta. Lisäksi PHP:ssä tunnuksen on noudatettava samoja nimeämissääntöjä kuin kaikkien muidenkin tarrojen: sisältää vain aakkosnumeerisia merkkejä ja alaviivoja, eikä se saa alkaa numerolla. [4] Perlissä tunniste voi olla mikä tahansa avaustunnisteen lainausmerkkien sisällä oleva merkkijono.
heredoc määritelmä ( Ruby ):
$s = << HEREDOC On olemassa "yksi" ja "kaksois" lainausmerkkejä. HEREDOCRubyssa tunniste voi olla mielivaltainen eikä kirjainkoolla ole merkitystä. Useimmiten käytetty käytännössä HEREDOC. Lainausmerkeissä oleva avaustunnus ei tulkitse muuttujia, mutta lainausmerkeissä se käyttäytyy samalla tavalla kuin ilman niitä. [5]