Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa. Tietotyypit voidaan jakaa yksinkertaisiin, jolloin muuttujaan liittyy kerrallaan täsmälleen yksi arvo Rakenteisiin, jolloin muuttujaan voi liittyä kerrallaan useita arvoja Tietotyypit tMyn
PHP-kielessä yksinkertaisia tietotyyppejä ovat: boolean (totuusarvo) integer (kokonaisluku) float (liukuluku) string (merkkijono) Rakenteisia tietotyyppejä ovat: array (taulukko) object (olio) Tietotyypit tMyn
Arvoina voivat olla ainoastaan TRUE tai FALSE. Totuusarvo boolean Arvoina voivat olla ainoastaan TRUE tai FALSE. Isojen ja pienten kirjainten ero jätetään huomiotta: $tottaVaiTarua=False; Kun jonkin muun tyypin muuttujaa muutetaan totuusarvoksi, niin seuraavat arvot muunnetaan boolean-tyypin FALSE-arvoksi: Tietotyypit tMyn
string: tyhjä merkkijono ja merkkijono ”0” boolean: FALSE integer: 0 float: 0.0 string: tyhjä merkkijono ja merkkijono ”0” array: tyhjä taulukko, ei alkioita Muut arvot muutetaan TRUE-arvoksi: Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Kokonaisluku – integer Integer-tyypin muuttuja voi sisältää etumerkillisiä kymmen-, heksadesimaali- ja oktaalijärjestelmän lukuja. Oktaalijärjestelmän luvut merkitään edeltävällä nollalla (0). Heksadesimaalijärjestelmän luvut merkitään edeltävällä nollalla ja x-merkillä (0x): $ekaInt=-12; //-12 kymmen- //järjestelmässä $tokaInt=012;//Oktaaliluku, kymmen- //järjestelmässä 10 Tietotyypit tMyn
$kolmasInt=0x12;//Heksades.luku, //kymmenjärjestelmässä //luku 18 Tyypillisesti järjestelmästä riippuva kokonaisluvulle varattu muistipaikka on 32-bittinen (etumerkillinen). Jos integer-tyypin muuttujalle syötetään nämä rajat ylittäviä arvoja, PHP muuttaa muuttujan tyypin automaattisesti float-tyyppiin. Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Float-tyypin muuttujia voidaan asettaa esim. seuraavilla tavoilla: Liukuluku – float Float-tyypin muuttujia voidaan asettaa esim. seuraavilla tavoilla: $ekaFlo=1.2; $tokaFlo=1.2e3; //1200 $kolmasFlo=3E-5; //0.00003 Tietotyypit tMyn
String-tyypin muuttuja sisältää merkkijonon, joka voidaan määritellä: Merkkijono – string String-tyypin muuttuja sisältää merkkijonon, joka voidaan määritellä: Heittomerkein: ’ Lainausmerkein: ” Nk. Heredoc-syntaksilla (Here Document) Käytettäessä heredoc-syntaksia on tärkeää, että aloittava rivi päättyy merkkeihin <<<TUNNISTIN. Esimerkissä vapaasti valittavana tunnistimena on EOD (End Of Data). Tietotyypit tMyn
$ekaStr=’Nyt tuli merkkijono’; $tokaStr=”Nyt tuli toinen merkkijono”; Merkkijonon päättävän tunnistimen on oltava rivin alussa. Sen ja puolipisteen lisäksi rivillä ei saa olla mitään muuta. $ekaStr=’Nyt tuli merkkijono’; $tokaStr=”Nyt tuli toinen merkkijono”; $kolmasStr=<<<EOD Tämä on sitten se heredoc-syntaksilla kirjoitettu merkkijono. EOD; Tietotyypit tMyn
Heittomerkki itse esitetään muodossa \’. Kun merkkijono määritellään heittomerkein, kaikki siihen kuuluvat (kirjoittuvat) merkit esittävät itseään – lukuun ottamatta kenoviivaa ja heittomerkkiä itseään. Heittomerkki itse esitetään muodossa \’. Heittomerkein määriteltyyn merkkijonoon kuuluvat muuttujien nimet (alkavat dollarimerkillä) tulostuvat sellaisinaan – siis sisältöjä ei tule tulostetuksi: Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Lisäksi on käytössä vaikkapa \n rivinvaihtomerkki (linefeed) Kun merkkijono määritellään lainausmerkein, siihen kuuluva lainausmerkki pitää esittää muodossa \”. Lisäksi on käytössä vaikkapa \n rivinvaihtomerkki (linefeed) \\ kenoviiva (reverse solidus). Lainausmerkein määritellyt merkkijonot jäsennetään (parse) käytettäessä. Merkkijonoihin kuuluvien muuttujien arvot korvaavat muuttujien nimet. Tietotyypit tMyn
Kokeillaan seuraavaksi merkkijonojen liitosoperaattoria, pistettä. Lisäksi kokeillaan yksittäiseen merkkiin viittaamista indeksillä: Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Kumpikaan ei ole perinteisessä mielessä funktio. PHP sisältää kaksi yleisesti käytettyä kielen sisäistä rakennetta (language construct) tulostamiseen: echo ja print. Kumpikaan ei ole perinteisessä mielessä funktio. Rakenne print palauttaa aina kokonaislukuarvon 1 ja echo ei mitään. Kumpaa tahansa voi siis käyttää, mutta kannattanee käyttää vain yhtä rakennetta yhtenevällä tavalla samassa ohjelmistossa. Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Taulukko – array PHP:ssä taulukkotyypin avulla voi rakentaa useita erilaisia tietorakenteita. Mainittakoon yksiulotteiset ja moniulotteiset taulukot, listat, jonot, pino ja puu. Taulukon indeksinä voi olla kokonaisluku tai merkkijono (assosiatiivinen taulukko, hajautustaulukko, hash table). Moniulotteiset taulukot muodostetaan käyttämällä taulukon elementin arvona toista taulukkoa, esim $taulukko[2][3]; Tietotyypit tMyn
Saman taulukon indeksit voivat olla erityyppisiä: $taulukko[”eka”][3]; Taulukkomuuttujan kokoa ei tarvitse määrätä etukäteen. Taulukko voidaan luoda mm. sijoittamalla arvoja taulukkomuuttujaan array-käskyllä Taulukon luominen sijoittamalla arvoja taulukkomuuttujaan (taulukkomuuttujan nimen erottaa ”tavallisesta” muuttujasta hakasuluista): Tietotyypit tMyn
$ruoka[]=”Tomaatti”; //$ruoka[0]=”Tomaatti” $ruoka[]=”Pinaatti”; //$ruoka[1]=”Pinaatti” $ruoka[6]=”Peruna”; //$ruoka[6]=”Peruna” $ruoka[]=”Salaatti”; // $ruoka[7]=”Salaatti” Jos sijoituslausekkeessa ei mainita indeksiä, sijoitettavan arvon indeksiksi tulee yhtä suurempi kuin suurin käytössä oleva kokonaislukuindeksi. Tietotyypit tMyn
Taulukon luominen array-käskyllä: Array-käskyn syntaksi on array( [key=>] value … ) Taulukon arvot erotetaan niihin mahdollisesti liittyvine avaimineen (indeksit) pilkulla toisistaan. Avain voi olla tyypiltään kokonaisluku tai merkkijono. Arvot voivat olla mitä tahansa tyyppejä, moniulotteisten taulukoiden tapauksessa myös taulukoita. Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
The pre element defines preformatted text The pre element defines preformatted text. The text enclosed in the pre element usually preserves spaces and line breaks. The text renders in a fixed-pitch font. Tietotyypit tMyn
print_r -- Prints human-readable information about a variable Description void print_r (mixed expression) This function displays information about the values of variables in a way that's readable by humans. If given A string, integer orfloat, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects. Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning. Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Tietotyypit tMyn
Erilaisia operaattoreita voidaan ryhmitellä käyttötarkoituksen mukaan: Operaattorit Erilaisia operaattoreita voidaan ryhmitellä käyttötarkoituksen mukaan: Aritmeettiset operaattorit Sijoitusoperaattorit Vertailuoperaattorit Loogiset operaattorit Muut operaattorit Tietotyypit tMyn
Aritmeettiset operaattorit Tietotyypit tMyn
Sijoitusoperaattorit Monien muiden kielien tapaan PHP tarjoaa sijoitusoperaattorin (=) lisäksi monia lyhennysmerkintöjä sijoitusoperaattorin yhdistämiseksi muihin operaattoreihin. Tietotyypit tMyn
Vertailuoperaattorit Operaation tuloksena on joko totuusarvo TRUE tai FALSE. Tietotyypit tMyn
Loogiset operaattorit Loogisilla operaattoreilla voidaan mm. yhdistellä vertailujen tuloksia. Tietotyypit tMyn
Se määrittää sen, mihin operandeihin mikin operaattori kohdistuu. Operaattoreita koskee ennalta asetettu sidontajärjestys eli presedenssi (precedence). Se määrittää sen, mihin operandeihin mikin operaattori kohdistuu. Jos sidontajärjestyksestä halutaan poiketa, on käytettävä sulkeita. Sulkeita voidaan käyttää myös pelkästään selkeyden vuoksi. Seuraavassa taulukossa operaattorien sidontajärjestys on esitetty ylenevässä järjestyksessä. Mitä alemmaksi taulukossa mennään, sitä vahvempi presedenssi kyseisessä laatikossa olevalla operaattorilla on. Tietotyypit tMyn
Assosiointi määrää sen, miten samalle tasolle kuuluvat operaattorit assosioivat keskenään. Merkintä oikealta vasemmalle (<=) tarkoittaa sitä, että oikeanpuoleiset operaatiot sitovat voimakkaammin. Esim. sijoitusoperaattori assosioi oikealta vasemmalle. Siispä $a=$b=$c jäsennetään $a=($b=$c). Tietotyypit tMyn
Tietotyypit tMyn