Ero sivun ”PHP” versioiden välillä

Poistettu sisältö Lisätty sisältö
Kenkku (keskustelu | muokkaukset)
Velma (keskustelu | muokkaukset)
siivousta
Rivi 52:
==== Koodilohkon merkitseminen ====
 
# Suositeltu <ref>{{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: perussyntaksi | Osoite=http://www.php.net/manual/en/language.basic-syntax.php | Julkaisija=PHP | Luettu=[[1. helmikuuta]] [[2007]] | Kieli={{en}} }}</ref> tapa merkitä koodilohkon alku ja loppu on ''<?php'' ja ''?>'' (niin kutsuttu pitkä aloitustagi). Tämä tapa on turvallisin siinä mielessä, että se ei sekoitu esimerkiksi [[XHTML]]-määrityksen <? -aloitukseen, joka aiheuttaa monille aloitteleville PHP-koodaajille päänvaivaa luomalla virheen PHP:n tulkkauksessa.
# On myös mahdollista käyttää lyhyttä aloitustagia ''<?'' ja ''?>''(''short_open_tag''). Tässä on kuitenkin riskinä se, että PHP:n ulkopuolella tulostettava XHTML-määritys aiheuttaa PHP-tulkille virheen. Vaikka PHP:ssa on määritelty ''short_open_tag''-asetus on-tilaan oletuksena, ovat useat palvelimet poistaneet tämän ominaisuuden käytöstä.
# Tarvittaessa voidaan käyttää myös ''script''-aloitustagia. Tässä haittapuolena on se, että PHP:n sisällä tulostettava &lt;/script&gt; saattaa aiheuttaa virheellisesti toimivaa koodia.
Rivi 78:
 
==== Lausekkeiden erottelu ====
PHP:ssa, samoin kuin [[C (ohjelmointikieli)|C]]:ssa tai [[Perl]]issaPerlissa, lauseet erotetaan toisistaan puolipisteen (;) avulla. Käytännössä tämä useimmiten tarkoittaa, että koodin rivit on päätettävä puolipisteeseen. Koodilohkon viimeistä riviä ei kuitenkaan välttämättä tarvitse sulkea, vaan PHP luo automaattisesti ennen lopetustagia puolipisteen.
 
<div style="width: 80%; clear: both">
Rivi 97:
</div>
 
PHP-tulkki jättää kommenttien lisäksi huomioimatta puolipisteellä suljetut tyhjät (ei mitään tai vain [[tulostumaton merkki|tulostumattomia merkkejä]] sisältävät) rivit.
 
==== Kommentointi ====
Rivi 146:
| colspan="4" style="background: #efefef; border-bottom: solid 2px #cccccc;" | '''Skaalautuvat muuttujatyypit'''
|-
| '''[[totuusarvo]]'''
| boolean
| bool, boolean
| <pre>TRUE, FALSE</pre>
|-
| '''[[kokonaisluku]]'''
| integer
| int, integer
| <pre>123, +123, -123, 0123, 0x1A, 2147483647</pre>
|-
| '''[[liukuluku]]'''
| float, double
| float, double, real
| <pre>1.23, +1.23, -1.23, 1.2e3, 7E-10</pre>
|-
| '''[[merkkijono]] ***'''
| string
| string
Rivi 168:
| colspan="4" style="background: #efefef; border-bottom: solid 2px #cccccc; border-top: solid 2px #cccccc" | '''Yhdistelmämuuttujatyypit'''
|-
| '''[[taulukko (ohjelmointi)|taulukko]]'''
| array
| array
| <pre>array ("yksi", "kaksi", "kolme", 1, 1.23)</pre>
|-
| '''[[objekti (ohjelmointi)|objekti]]'''
| object
| object
Rivi 180:
| colspan="4" style="background: #efefef; border-bottom: solid 2px #cccccc; border-top: solid 2px #cccccc" | '''Erikoismuuttujatyypit'''
|-
| '''[[resurssi (ohjelmointi)|resurssi]]'''
| resource
| -
| <pre>-</pre>
|-
| '''[[tyhjä (ohjelmointi)|tyhjä]]'''
| NULL
| -
Rivi 197:
| <pre>-</pre>
|-
| '''[[numeraali (ohjelmointi)|numeraali]]'''
| number
| -
Rivi 215:
Muuttujia käytetään tallentamaan tietoa, joka saadaan joko itse koodista, tietokannasta, käyttäjältä tai vaikkapa palvelimelta. Muuttujien käyttö ja hallinta on PHP:ssä moniin muihin ohjelmointikieliin verrattuna yksinkertaista siksi, että niiden tyyppiä ei tarvitse itse määrittää vaan se päätellään automaattisesti muuttujalle annetusta arvosta. Muuttujalle pitää kuitenkin antaa arvo ennen kuin sitä voidaan käyttää muualla koodissa.
 
Muuttuja merkitään dollarimerkillä $ ja tunnisteella, jossa sallittuja merkkejä ovat ovat kirjaimet A&ndash;Z sekä ASCII-merkistön merkit 127 &ndash; 255 (sisältäen skandinaaviset sekä yleisimmät eurooppalaiset merkit), alaviiva _ ja numerot 0&ndash;9. Muuttujan nimi (dollarin $ jälkeinen osa) ei kuitenkaan voi alkaa numerolla. Muuttujat ovat myös kirjainkokoriippuvaisia, jolloin muuttuja $heimaailma on eri muuttuja kuin $HeiMaailma.<ref name="variables">{{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: muuttujat | Osoite=http://www.php.net/manual/en/language.variables.php | Julkaisija=PHP | Luettu=[[11. maaliskuuta]] [[2007]] | Kieli={{en}} }}</ref> Järkevintä on luonnollisesti valita muuttujan tunnisteeksi sen tehtävää kuvaava nimi.
 
==== Muuttujien lisääminen merkkijonoon ====
Rivi 223:
echo $tervehdys; // Käytetään äskettäin luotua muuttujaa ja tulostetaan sen sisältämä teksti
?>
 
 
Jos muuttuja halutaan sijoittaa suoraan toisen merkkijonon sisään, voidaan menetellä kahdella tavalla.
Rivi 233 ⟶ 232:
echo 'Hei, olet käynyt täällä' . $käyntikerrat . 'kertaa.'; // Hei, olet käynyt täällä 3 kertaa.
?>
 
 
 
Muuttujan voi liittää lainausmerkkejä käytettäessä myös suoraan merkkijonoon:
Rivi 243 ⟶ 240:
echo "Hei, olet käynyt täällä $käyntikerrat kertaa."; // Hei, olet käynyt täällä 3 kertaa.
?>
 
 
 
Kun käytetään heittomerkkejä, ei merkkijonon sisällä voi käyttää muuttujia:
Rivi 265 ⟶ 260:
|-
| align="center" | '''+'''
| [[yhteenlasku]]
| addition
| <pre>$a = 5 + 3;</pre>
|-
| align="center" | '''-'''
| [[vähennyslasku]]
| subtraction
| <pre>$a = 5 - 3;</pre>
|-
| align="center" | '''*'''
| [[kertolasku]]
| multiplication
| <pre>$a = 5 * 3;</pre>
|-
| align="center" | '''/'''
| [[jakolasku]]
| division
| <pre>$a = 5 / 3;</pre>
|-
| align="center" | '''%'''
| [[jakojäännös]]
| modulus
| <pre>$a = 5 % 3;</pre>
Rivi 388 ⟶ 383:
=== Muuta huomioitavaa ===
 
# PHP on heikosti tyypitetty kieli <ref>{{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: tyyppimuunnos | Osoite=http://www.php.net/manual/en/language.types.type-juggling.php | Julkaisija=PHP | Luettu=[[1. helmikuuta]] [[2007]] | Kieli={{en}} }}</ref>. Tämä tarkoittaa sitä, että muuttujia ei tarvitse [[muuttujan esittely|esitellä]] ennen käyttöä (vaikka tämä aiheuttaakin PHP:n virheenhallintajärjestelmässä huomautuksen (E_NOTICE), ja on hyvin epäsuositeltavaa), ja muuttuja voi vaihtaa tyyppiä kesken skriptin suorituksen.
# Muuttujatyyppiä ei tarvitse, eikä saa, erikseen määritellä. PHP valitsee itse muuttujatyypin, joka sopii muuttujaan sijoitettavaan arvoon. Tarvittaessa PHP automaattisesti muuttaa muuttujatyypin (esim. lisättäessä kokonaislukuun liukuluku). Tarvittaessa muuttujille voidaan kuitenkin suorittaa [[Muuttujan tyyppimuunnos|tyyppimuunnos]], joka tekee muuttujasta valitun tyyppisen.
# Kielen perusominaisuuksiin kuuluu heterogeeninen taulukko. Tällöin taulukko voi sisältää useita erityyppisiä muuttujia alkioissaan.
 
Rivi 418 ⟶ 413:
== PHP:n käyttö ==
 
PHP rakentuu hyvin pitkälle valmiin [[PHP:n luokkakirjastot|luokkakirjaston]] käyttöön. Luokkakirjasto tukee useita eri alueita kuten [[HTTP]]-protokollaa, useiden eri [[luettelo tiedostopäätteistä|tiedostotyyppien]] muokkausta, tietokannan hallintaa sekä paljon muuta. Kappaleen lopussa löytyvistä ''tietoturvavinkeistä'' saat hyödyllisiä vihjeitä turvallisten asetusten sekä [[koodauskäytäntö]]jenkoodauskäytäntöjen osalta.
 
=== PHP:hen kuuluvat luokkakirjastot ===
{{pääartikkeli|[[PHP:n luokkakirjastot]]}}
 
PHP sisältää itsessään suuren joukon valmiita luokkakirjastoja muun muassa [[tiedosto]]jentiedostojen, [[tietokanta]]yhteyksientietokantayhteyksien sekä erilaisten [[merkkijono]]- ja [[päivämäärä]]toimintojenpäivämäärätoimintojen suorittamiseksi. PHP on versiosta 3 lähtien tukenut kolmansien osapuolien [[ohjelmointirajapinta|ohjelmointirajapintoja]], ja tämän ansiosta PHP:n luokkakirjastot ovatkin määrällisesti lisääntyneet kymmenistä luokkakirjastoista satoihin luokkakirjastoihin.
 
=== Tietokannan käyttö ===
 
PHP on tukenut versiosta neljä lähtien kolmansien osapuolien [[ohjelmointirajapinta|ohjelmointirajapintoja]]. Tämä on mahdollistanut laajan tuen eri tietokannoille ja niiden tehokkaalle hyödyntämiselle.
 
'''Tietokantakohtaiset luokkakirjastot'''
 
Tietokantakohtaiset luokkakirjastot tarjoavat laajan tuen tietokannan käyttämiseksi. Tuettuina tietokantoina ovat muun muassa [[MySQL]], [[PostgreSQL]], [[SQLite]] ja [[Oracle]].
 
'''ODBC'''
 
Monikäyttöinen [[ODBC]]-luokkakirjasto tarjoaa yhtenäisen rajapinnan muun muassa [[Adabas D]], [[IBM DB2]], [[iODBC]], [[Solid]], ja [[Sybase SQL Anywhere]] tietokantoihin. Kun tarvitaan joustavuutta ja mahdollisuutta siirtyä tietokannasta toiseen, on ODBC:n käyttö suositeltavaa.
 
=== Olio-ohjelmointi ===
 
Ennen versiota kolme PHP ei sisältänyt mahdollisuutta [[olio-ohjelmointi]]inohjelmointiin. PHP 3 sisälsi hyvin minimaalisen tuen olio-ohjelmoinnille, ja sama semantiikka tuli käyttöön myös PHP 4:ssä.
 
Kuitenkin PHP 5:stä lähtien olio-ohjelmointi on ollut lähestulkoon täydellisesti tuettuna. Ominaisuudet, jotka tulivat PHP:hen mukaan vitosversiossa, ovat seuraavat:
 
* '''Uusi oliomalli'''
** Uudessa oliomallissa PHP käsittelee oliota [[resurssi (ohjelmointi)|resursseista]] tutuilla viittauksilla, kun aikaisemmin käsittelytapa oli enemmänkin primitiivimuuttujan (kuten ''kokonaisluvun'' tai ''merkkijonon'') tyylinen. Etuna tässä on se, että nykyisin koko oliota ei tarvitse kopioida lähetettäessä sitä muuttujalle tai metodille, ja olion eri osa-alueiden käsittely nopeutuu sekä helpottuu.
* '''Yksityinen- ja suojattu-määritykset muuttujille ja metodeille'''
** Aikaisemmin PHP ei ole tukenut kuin ''julkisen'' luokan määrityksiä.
Rivi 458 ⟶ 452:
* '''Poikkeuskäsittelijät'''
** PHP 5 sisältää poikkeuskäsittelijät (''exception handling'') olioille.
 
Lisätietoja PHP 5:n olioista löytyy PHP:n manuaalin luvusta 19. [http://php.net/manual/en/language.oop5.php Classes and Objects (PHP 5)]
 
== Tietoturvavinkkejä ==
 
Tämä kappale käsittelee PHP:n [[tietoturva]]a, ja etenkin sitä, kuinka pystyt tekemään tietoturvallisempaa koodia <ref>{{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: tietoturva | Osoite=http://www.php.net/manual/en/security.php | Julkaisija=PHP | Luettu=[[1. helmikuuta]] [[2007]] | Kieli={{en}} }}</ref>.
 
==== Asetukset ====
Rivi 521 ⟶ 513:
Taulukkoon on helppo sijoittaa tietoa myöhemmin, $taulukko[] = "tieto"; sijoittaa tiedon seuraavaan vapaaseen paikkaan.
 
==Katso myösLähteet ==
* {{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: muuttujat | Osoite=http://www.php.net/manual/en/language.variables.php | Julkaisija=PHP | Luettu=11. maaliskuuta 2007 | Kieli={{en}} }}
* {{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: tyyppimuunnos | Osoite=http://www.php.net/manual/en/language.types.type-juggling.php | Julkaisija=PHP | Luettu=1. helmikuuta 2007 | Kieli={{en}} }}
* {{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: tietoturva | Osoite=http://www.php.net/manual/en/security.php | Julkaisija=PHP | Luettu=1. helmikuuta 2007 | Kieli={{en}} }}
* {{Verkkoviite | Tekijä=PHP | Nimeke=PHP manuaali: perussyntaksi | Osoite=http://www.php.net/manual/en/language.basic-syntax.php | Julkaisija=PHP | Luettu=1. helmikuuta 2007 | Kieli={{en}} }}
 
==Aiheesta muualla==
* [http://www.php.net/ php.net] - PHP:n virallinen sivu (englanninkielinen) {{en}}
Lisätietoja PHP 5:n olioista löytyy PHP:n manuaalin luvusta 19.* [http://php.net/manual/en/language.oop5.php Classes and Objects (PHP 5)]
* [http://www.ohjelmointiputka.net/ Ohjelmointiputka] - Sivusto, jossa on paljon koodivinkkejä ja oppaita aloittelijoille.
* [http://www.mureakuha.com/ Mureakuha] - Toinen ohjelmointia käsittelevä sivusto, mutta se on tarkoitettu hieman edistyneemmille ohjelmoijille.
 
== Viitteet ==
<references />
 
[[Luokka:PHP]]
Noudettu kohteesta ”https://fi.wikibooks.org/wiki/PHP