PHP
PHP KOULUTUSTA VUONNA 2025!
-
PHP koulutus
-
WordPress PHP-devaajalle koulutus
-
MySQL koulutus
-
Apache HTTPd koulutus
-
Microsoft IIS koulutus
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
PHP:n tietotyypit: merkkijonot (strings) ja niiden käsittely
PHP:ssä kaikki lainausmerkeillä (' tai ") rajatut arvot ovat merkkijonoja. Merkkijonotyyppisen muuttujan nimeämisessä tulisi hyödyntää käytäntöä, jossa muuttujan nimi alkaa pienellä s-kirjaimellä (s=string). Esimerkiksi:
<?php
$sHello = "Hello World";
$sHelloAgain = 'Moi uudelleen';
?>
Lainausmerkin tyyli määrittää korvauskäytännön
PHP:ssä merkkijono voidaan määritellä joko yksinkertaisilla lainausmerkeillä (') tai kaksoislainausmerkeillä ("). Valinta vaikuttaa siihen, miten PHP tulkitsee merkkijonon sisällön:
- Kaksinkertaiset lainausmerkit - kaikki muuttujat ja erikoismerkit merkkijonon sisällä tulkitaan
- Yksinkertaiset lainausmerkit - kaikki käsitellään kirjallisesti, tämä tapa on suorituskyvyn kannalta hieman tehokkaampi vaihtoehto.
Esimerkiksi::
<?php
$sNimi = "Keijo";
echo "Hei $sNimi!"; // Tulostaa: Hei Keijo!
echo 'Hei $sNimi!'; // Tulostaa: Hei $sNimi!
?>
Merkkijonojen yhdistäminen
PHP:ssä merkkijonot yhdistetään pisteellä (.). Tämä toimii sekä muuttujien että vakiomerkkijonojen kanssa:
<?php
$sEtuNimi = "Keijo";
$sSukuNimi = "Koo";
$sKokoNimi = $sEtuNimi . " " . $sSukuNimi;
echo $sKokoNimi; // Tulostaa: Keijo Koo
?>
Voit myös ketjuttaa useita merkkijonoja yhteen pisteoperaattorilla, esimerkiksi näin
<?php
echo "Tervetuloa, " . $sEtuNimi . "!";
?>
Escape-merkit kaksoislainauksissa
Kun käytät lainausmerkki-syntaksia ("..."), tietyt merkit pitää "paeta" kenoviivalla \
.
Alla oleva taulukko listaa yleisimmät PHP:n escape-merkinnät:
Escape merkki | Seloste |
---|---|
\n | Rivinvaihto (LF tai 0x0A (ASCII)) |
\r | Rivinvaihto(CR tai 0x0D(ASCII)) |
\t | Pystysuora sisennys (HT tai 0x09(ASCII)) |
\\ | Kenoviiva |
\$ | Dollari merkki |
\" | Lainausmerkki(") |
\[0-7]{1,3} | Säännöllinen lause, joka edellyttää että arvo on oktaalidesimaalimuodossa |
\x[0-9A-Fa-f]{1,2} | Säännöllinen lause, joka edellyttää että arvo on heksadesimaalimuodossa. |
Esimerkiksi rivinvaihtojen tuottaminen PHP-koodissa voi tapahtua seuraavasti:
<?php echo "<body>\n"; ?>
Saman lopputuloksen saa aikaiseksi käyttämällä PHP:n sisäisiä vakioita:
<?php echo "<body>". PHP_EOL; ?>
Toinen tapa on käyttää yksinkertaista lainausmerkkiä ('). Kun käytetään tätä tapaa, ainoastaan kenoviiva (\\) ja yksinkertainen lainausmerkki (\') pitää korvata.
<?php
echo 'O\'Hara on irlantilainen sukunimi.';
?>
Heredoc- ja Nowdoc-syntaksi
PHP tukee myös monirivisten merkkijonojen määrittelyä Heredoc- ja Nowdoc-syntaksilla.
Heredoc toimii kuten kaksoislainaukset — muuttujat ja erikoismerkit tulkitaan:
<?php
$sNimi = "Keijo";
echo <<<EOT
Hei, $sNimi!
Tämä on monirivinen teksti.
EOT;
?>
Nowdoc toimii kuten yksinkertaiset lainaukset — mitään ei tulkita:
<?php
$sNimi = 'Keijo';
echo <<<'EOT'
Hei, $sNimi!
Tämä tulostaa muuttujan nimen sijaan kirjaimellisesti $sNimi.
EOT;
?>
Merkkijonojen muuntaminen toiseksi tietotyypiksi
Kun merkkijono arvioidaan numeeriseksi, lopputulos ja tietotyyppi päätellään seuraavasti:
- Kyseessä on liukuluku (double), mikäli merkkijono sisältää pisteen (.) tai e kirjaimen(e tai E - matemaattinen ilmaus liukuluvulle).
- Muussa tapauksessa kyseessä on kokonaisluku.
- Arvo määritellään merkkijonon alun perusteella. Jos merkkijono alkaa numeerisella datalla, arvo otetaan siitä.
- Muutoin arvo on 0.
- Jos ensimmäinen lauseke on merkkijono, muuttujan tyyppi määritellään toisen lausekkeen perusteella.
Alla on muutamia esimerkkejä merkkijonomuunnoksista:
$foo = 1 + "10.5"; // liukuluku (11.5)
$foo = 1 + "-1.3e3"; // liukuluku(-1299)
$foo = 1 + "abc-1.3e3"; // kokonaisluku(1)
$foo = 1 + "abc3"; // kokonaisluku (1)
$foo = 1 + "10 pientä possua"; // kokonaisluku(11)
$foo = "10.0 possua " + 1; // kokonaisluku (11)
$foo = "10.0 possua " + 1.0; // liukuluku (11)
Mikäli olet epävarma muuttujasi tietotyypistä, voit tulostaa sen näytölle seuraavasti:
$sFoo = "10.0 yksikköä" + 1; // laskutoimitus muuntaa tämän numeerikseksi
echo gettype($sFoo);
Merkkijonon käsitteleminen taulukkona
PHP:ssä merkkijonoja voi käsitellä kuin taulukoita, joissa jokaisella merkillä on oma indeksi. Kyseessä on muun muassa C- ja Java-kielestä tuttu piirre:
<?php
$sText = "Tämä on merkkijono";
/* Noudetaan merkkijonon ensimmäinen merkki */
$sFirst = $sText[0];
/* Noudetaan merkkijonon viimeinen merkki */
$sLast = $sText[strlen($sText)-1];
?>
Hyödyllisiä merkkijonofunktioita
Alapuolelle on listattu muutamia yleishyödyllisiä merkkijonofunktioita niiden käyttötarkoituksineen:
Menetelmä | Seloste |
---|---|
strtolower(); | Muuntaa merkkijonon pieniksi kirjaimiksi (smallcaps) |
strtoupper(); | Muuntaa merkkijonon kapiteeleiksi (isot kirjaimet). |
substr(); | Palauttaa osan merkkijonosta |
strlen(); | Palauttaa merkkijonon pituuden. |
trim(); | Poistaa tyhjät merkit merkkijonon alusta ja lopusta. |
strrev(); | Palauttaa merkkijonon peilikuvana |
Esimerkiksi:
<?php
$sText = 'Hello';
echo strtolower($sText); // Hello
echo strtoupper($sText); // HELLO
echo strlen($sText); // 5
?>