Parengė: Martynas Kašelionis
From zero to hero
PHP – plačiai paplitusi dinaminė interpretuojama (server side) skriptų rašymo kalba (en: Hypertext Preprocessor), sukurta 1995 m. ir specialiai pritaikyta interneto svetainių kūrimui.
PHP sintaksė panaši į daugelį struktūrinių kalbų, ypač į C bei Perl.
Serveris grąžina atsakymą, gautą iš PHP:
WEB serveris:
Duomenų bazės serveris:
PHP interpretatorius
<?php
echo 'Sveikas pasauli'; // Išvedimas galimas ir su print arba print_r.
Dažnai programavimas prasideda, nuo Hello world išvedimo kompiuterio ekrane.
Tačiau, kartais čia pat ir baigiasi :)
/*
Kelių eilučių komentaras
*/
<?php
$vardas = 'Vardenis';
$Pavarde = 'Pavardenis';
echo "$vardas, $Pavarde"; // išves: "Vardenis, Pavardenis"
$4preke = 'raketa'; // klaida; kintamojo vardas, negali prasidėti skaičiumi
$_4preke = 'preke'; // vardas teisingasCase sensitive: $suma ≠ $Suma
<?php
$vardas= "Martynas"; // simbolių rinkinys
<?php
$kaina = 200;
echo ’Šokolado kaina: $kaina';
// Šokolado kaina: $kaina;
<?php
$kaina = 200;
echo “Šokolado kaina: $kaina”;
// Šokolado kaina: 200;
<?php
$kaina = 200;
echo “Šokolado kaina: \$kaina”;
// Šokolado kaina: $kaina;
<?php
$kaina = 200;
echo “Šokolado kaina: “ $kaina “ ”;
// Sintaksės klaida
<?php
$eilute = " labas rytas, Lietuva! ";
$ilgis = strlen($eilute);
Funkcija strlen grąžina eilutės simbolių skaičių. Šiuo atveju - 23.
<?php
$eilute = " labas rytas, Lietuva! ";
$eilute_be_tarpu = trim($eilute);
Funkcija trim grąžina eilutę be tarpų pradžioje ir pabaigoje.
<?php
$didziosios_raides = strtoupper($eilute);
Funkcija strtoupper - pakeičia visas raides į didžiąsias
<?php
$mazosios_raides = strtolower($eilute);
Funkcija strtolower - pakeičia visas raides į mažąsias
<?php
$pavadinimas = ucfirst($eilute);
Funkcija ucfirst - pakeičia TIK pirmąją eilutės raidę į didžiąją
<?php
$tekstas = str_replace("Lietuva", "Latvija", $eilute);
Funkcija str_replace paima kintamąjį $eilute ir pakeičia visus tekste esančius žodžius "Lietuva" į "Latvija". Tiksliau, į tokius parametrus kuriuos mes nurodome.
<?php
$zodis = substr($eilute, 1, 5);
Funkcija substr grąžina žodžio dalį - šiuo atveju penkis simbolius, pradedant nuo antrojo.
<?php
$text = "\t\tPHP yra puiki programavimo kalba :) ... ";
$trimmed = trim($text);
Funkcija trim pašalina tarpus string pradžioje ir pabaigoje.
$a = 10;
$b = $a + 1; // 11
$c = $a - 1; // 9
$d = $a * 5; // 50
$e = $a / 2; // 5
$f = $a % 3; // 1echo abs(5); // abosoliutus skaičius
echo pow(2, 8); //kėlimas laipsniu
echo sqrt(9); // kvadratinė šaknis
echo round(5.045, 2); // apvalinimas
echo ceil(4.3); // 5 (apvalinimas iki sekančio sveiko skaičiaus)
echo floor(4.3); // 4 (apvalinimas iki žemesnio sveiko skaičiaus)
// Atsitiktinis skaičius
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);Daugiau matematinių funkcijų:
echo is_int(23); // true
echo is_float(27.25); // true
echo is_numeric(6); // trueFunkcija var_dump išveda informaciją apie kintamąjį
<?php
$b = 3.1;
$c = true;
var_dump($b, $c);
?>//output:
float(3.1)
bool(true) Masyvas (ang. array) yra duomenų struktūra, leidžianti saugoti tam tikras reikšmes vienoje vietoje.
<?php
$students = ['Karolis', 'Tadas', 'Ieva'];
echo count($students); // suskaičiuoja elementų masyve skaičių
echo max($students); // maksimalios reikšmės radimas
echo min($students); // minimalios reikšmės radimas
echo sort($students); // masyvo rikiavimas didėjančia tvarka, arba pagal abecelę
echo rsort($students); // masyvo rikiavimas reversu
// Masyvo konvertavimas į string
$array = ['lastname', 'email', 'phone'];
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
?><?php
// String konvertavimas į masyvą
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// reikšmės paieška masyve
$array = array(
'egg' => true,
'cheese' => false,
'hair' => 765,
'goblins' => null,
'ogres' => 'no ogres allowed in this array'
);
in_array(765, $array); // true
?>Daugiau masyvų funkcijų:
var_dump((bool) ""); // bool(false)
var_dump((bool) 0); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)<?php
$var = NULL;
?>$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?><?php
define('vartotojas', 'Vardenis Pavardenis');
echo vartotojas; // Vardenis Pavardenis
Konstanta PHP kalboje yra kintamasis, kurio reikšmė nekinta.
Loginės išraiškos
0 === FALSE
True ar False?
Sąlygos sakiniai
<?php
if ($a > $b)
echo "a yra didesnis už b";
?>
<?php
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
?>
<!-- Kai vykdomas HTML kode-->
<?php if ($a > $b): ?>
<div> <?php echo $a." is greater than ".$b; ?> </div>
<?php elseif ($a == $b): ?>
<?php echo $a." equals ".$b; ?>
<?php else: ?>
<?php echo $a." is neither greater than or equal to ".$b; ?>
<?php endif; ?>
<?php
if ($i == 0) {
echo "i equals 0";
} elseif ($i == 1) {
echo "i equals 1";
} elseif ($i == 2) {
echo "i equals 2";
}
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>Ciklai kažkuo panašūs į sąlygos sakinius.
Tik skirtumas toks, kad sąlygos sakinių atveju JEIGU [tenkinama sąlyga], TAI [vykdomas veiksmas], o ciklų atveju yra kitaip:
KOL [tenkinama sąlyga], TOL [vykdomas veiksmas]. Tokiu būdu veiksmas atliekamas N kartų - tiek, kiek jums reikia arba iki tol, kol sąlyga nebebus patenkinama.
• for ( $i = 0; $i < 100; $i++ ) { /*...*/ }
• while ( $isLoop == true ) { /*...*/ }
• foreach ($arr as $value) { /*...*/ }
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
?>
<?php
$i = 1;
while ($i <= 10) {
echo $i++; /* išvedimas
$i prieš didinimą vienetu */
}
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue; // pereinama į sekančią iteraciją
print "$i";
}
?>
<?php
$arr = ['one', 'two', 'three', 'four', 'stop', 'five'];
foreach ($arr as $val) {
if ($val == 'stop') {
break; /* Sustabdom ciklą */
}
echo "$val<br />\n";
}
Funkcija yra kodo blokas, kuris gali būti kviečiamas, tada, kai to reikia.
Funkcijos gali būti su argumentais arba be jų ir gali gražinti reikšmę.
Realiai, funkcijų pavyzdžius jau esame matę ne kartą: trim(), implode() ar explode() - visa tai yra PHP vidinės funkcijos.
Funkcijos kūrimas:
function suma ($arg1, $arg2, $arg3) {
// funkcijos atliekami veiksmai
$suma = $arg1 + $arg2 + $arg3;
return $suma; // "return" - funkcijos grąžinama reikšmė
}Funkcijos vykdymas:
<?php
echo suma(10,34,56);Funkcija su parametrais:
function suma ($arg1, $arg2, $arg3) { //nekontroliuojami duomenų tipai
// funkcijos atliekami veiksmai
$suma = $arg1 + $arg2 + $arg3;
return $suma; // "return" - funkcijos grąžinama reikšmė
}Funkcijos su parametrais:
<?php
function sum(int $a, int $b) {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));<?php
$a = 1;
$b = 2;
function Sum()
{
global $a;
$b=5;
$b = $a + $b;
return $b;
}
echo Sum();
echo $b;
<?php
$pasisveikinimas = function ()
{
return 'Labas';
};
echo $pasisveikinimas(); // Labas
PHP skripto įvykdymo rezultatas yra HTML , kuris perduodamas atvaizdavimui į naršyklę.
Būtent dėl to į PHP skriptą gali būti rašomas HTML kodas.
<html>
<body>
Antroji programa <br />
<?php
echo "Labas rytas";
echo "<h2>Labas vakaras</h2>";
?>
</body>
</html>Tam, kad neišvedinėti HTML per echo. Galima daryti PHP intarpus
<html>
<body>
<h2>Darbuotojų sąrašas:</h2>
<ul>
<?php foreach($darbuotojai as $darbuotojas):?>
<li><?php echo $darbuotjas; ?></li>
<?php endforech;?>
</ul>
</body>
</html>Nesvarbu, kokią programavimo kalbą naudojame, visada privalome vengti dubliavimo ir siekti maksimaliai išnaudoti kodo pernaudojimą.
Todėl organizuojant projekto struktūrą ir HTML šabloną reikia skaidyti į dalis, kurios įtraukiamos tada, kai jų reikia.
Tam naudojama PHP funkcija include (dažnu atveju, kai kodas rašomas nesiremiant OOP principais)
Include ir require:
Kuom skiriasi:
Dokumentacija:
Sesijos naudojimas:
Creating New Session
==========================
<?php
session_start();
/*session is started if you don't write this line can't use $_Session global variable*/
$_SESSION["newsession"]=$value;
?>
Getting Session
==========================
<?php
session_start();
/*session is started if you don't write this line can't use $_Session global variable*/
$_SESSION["newsession"]=$value;
/*session created*/
echo $_SESSION["newsession"];
/*session was getting*/
?>
Updating Session
==========================
<?php
session_start();
/*session is started if you don't write this line can't use $_Session global variable*/
$_SESSION["newsession"]=$value;
/*it is my new session*/
$_SESSION["newsession"]=$updatedvalue;
/*session updated*/
?>
Deleting Session
==========================
<?php
session_start();
/*session is started if you don't write this line can't use $_Session global variable*/
$_SESSION["newsession"]=$value;
unset($_SESSION["newsession"]);Cookies - yra leidžiantis saugoti duomenis naršyklėje su tikslu indentifikuoti vartotoją ir sekti jo atliekamus veiksmus.
<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");