šį "tutor'ą" aš tik pataisiau ir suteikiau HumanReadable pavidalą. Iš tiesu jį vertė Bastardaz. O vertimas spėkit iš kur? Ogi iš tos pačios: "raudona knygute aka "Propesionalnaja programiravonija PHP 4"" - jei nesupratote galite paskaityti GameClub'o laišką iš konferencijos kuriame apie tai ir eina kalba :)

Kintamieji (variables)

Viena iš svarbiausių ir esminių programavimo kalbos struktūrų yra kintamieji. PHP kalboje taip pat apibrėžta kintamojo konstrukcija. Pagrindinė kintamojo paskirtis - saugoti duomenis, kiekvienas kintamasis skripto vykdymo momentu įgyja tam tikrą reikšmę, kuri, vykdant skriptą, gali keistis. Kintamasis apibrėžiamas nurodant jo vardą, po to į kintamąjį kreipiamasi pagal vardą. Išskirtinis PHP kintamojo požymis yra ženklas "$". Jis visada rašomas prieš kintamąjį: PVZ.:

<? $vardas = "jonas"; ?>

(Šiame pavyzdyje panaudotas priskyrimo operatorius, kuris bus aptartas vėliau)
Prasminga parinkinėti vardus, kurie atspindi tikrąją kintamojo paskirtį, pvz: $vardas = "jonas, $kaina = 2.00, pagal šiuos pavydzdžius lengva nustatyti kintamojo prasmę.
Dėmesio! PHP kintamųjų vardai priklauso nuo raidžių registro, pvz. kintamieji
$Pirmas = 10 ir $pirmas = 20 yra skirtingi.

Duomenų tipai

PHP kalboje apibrėžti tokie duomenų tipai:

1. Sveikieji skaičiai (integer arba int)
2. Realieji skaičiai (double arba real)
3. Eilutės (string)
4. Masyvai (array)
5. Objektai (objects)


Sveikieji skaičiai atmintyje užima 4 baitus ir gali įgyti reikšmes nuo -2147483648 iki 2147483647, realieji skaičiai naudojami realiems dydžiams sagoti ir gali įgyti paprastą bei eksponentinę išraišką (pvz:. 1.25 ir 1.25e4 = 1250). Eilutės skirtos saugoti kitiems simboliams (raidėms, ženklams ir tt), taip pat ir skaičiams (pastaba: 2 ir "2" reikšmės skiriasi 2 - tai skaičius, o - "2" - simbolis, "2" ekvivalentu "a"). Apie masyvus ir objektus paskaitysite veliau.

Daugelyje kalbų yra apibrėžtas loginis (boolean) tipas, turintis tik dvi reikšmes - teisinga arba klaidinga. PHP kalboje jo nėra, tačiau jis keičiamas kitais tipais. Reikšmę teisinga (true) atitinka bet koks sveikas skaičius, nelygus 0, realus skaičius, nelygus 0 bei netuščia eilutė, reikšmę klaidinga (false) - 0 (integer), 0.000..000 (double), "" - tuščia eilutė.

Konstantos (constants)

Konstantos yra nesikeičiantys dydžiai. PHP kalboje konstantos būna dviejų tipų: tikslios (literal) (pvz, skripto tekste parašytas skaičius 10 ( if ($a < 10) {echo ("laba diena, mielieji.")} ), eilutė "laba diena, mielieji." Kitas konstantų tipas nustatomos pagal apibrėžtį. Konstantas apibrėžia funkcija define(). PVZ:.

<?
define( "PAVADINIMAS", "PUMPENU SURIAI" );
define( "NE", "<BR>n" );

echo( "Firmos pavadinimas: ".PAVADINIMAS ); // "." - sujungimo operatorius
echo( "Firmos pavadinimas: PUMPENU SURIAI" ); // ši eilute ekvivalenti pirmai
?>

(pastaba: konstantos aprašomos be ženklo "$")
Norėdami nustatyti, ar konstanta egzistuoja, naudokite funkciją defined(), Ji grąžina 1, jei tokia konstanta apibrėžta, priešingu atveju - 0.

<?
define( "PAVADINIMAS", "PUMPENU SURIAI" );
define( "NE", "<BR>n" );

echo( "Firmos pavadinimas: ".PAVADINIMAS ); // "." - sujungimo operatorius
echo( "Firmos pavadinimas: PUMPENU SURIAI" ); // ?i eilute ekvivalenti pirmai
?>

Vidinės konstantos:

Vidinės konstantos yra tokios konstantos, kurios apibrėžtos kalbos vduje. PVZ, galima naudoti konstantas TRUE ir FALSE (jų reikšmes jau paaiškinome anksčiau). Taip pat yra nemažai kitų konstantų, kurios grąžina įvairios paskirties informaciją. Jas ir jų reikšmes galima sužinoti iš funkcijos phpinfo().

Kintamojo apibrėžimas ir pirminės reikšmės suteikimas

Kintamųjų, kitaip negu konstantų, nereikia aprašyti papildomai. Kintamasis apibrėžiamas automatiškai, kai jam priskiriama reikšmė. Priskyrimao operatorius PHP kalboje yra "="; Pvz:

<?
$a = 512; // nuo cia apibre˛iamas kintamasis $a ir jam priskiriama reikšme 512
$b = $a; // apibre˛iamas kintamasis $b ir jam priskiriama $a reikšme
$c = $a + $b; // $c priskiriama reikšme $a + $b (1024)
?>

PHP kalbo nėra griežtai tipizuota kalba ir joje nereikia apibrėžti kintamojo tipo. Bet kuriuo metu kintamasis gali įgyti bet kokio tipo reikšmę. Kintamojo tipas nustatomas pagal tai, kokia išraiška priskiriama kintamajam. Pvz.:

<?
$a = 10; // dabar kintamasis $a yra sveikas skaicius
$a = "mama"; // dabar $a jau eilute
?>

Perėjimas nuo eilučių prie skaičių (string conversion)

Jei Jūs su eilute atliksite skaitinę operaciją, PHP laikys eilutę skaičiumi. Pvz:

<?
$eil = "10 dienu ka˛kas stabdo tinkla"; // $eil - string tipo kintamasis
$x = $eil + 3; // $eil bus laikomas integer tipo kintamuoju su reikšme 10
// $x bus integer tipo kintamasis su reikšme 13
// $eil reikšme nepakis
?>

Perėjimas nuo eilučių prie skaičių atliekamas pagal tokias taisykles:

1. PHP "moka ištraukti" sveiką skaičių iš eilutės tik tada, jei ji prasideda skaičiumi. Pvz:

<?
$a = "10 pinigu";
$b = $a + 10; // $b = 20

$c = "Ma˛ai pinigu, tik 10";
$d = $c + 10; // $d = 10
?>

Jei eilutė neprasideda skaičiumi, jos perkonvertuota reikšmė bus 0.

2. Eilutė bus laikoma realiu skaičiumi tik tada, jei visą eilutę atitiks double tipo išraiška. Eilutės "10.25","-1.25","1.5e-10" įgytų tokias reikšmes, kokias pačios atitinka. Jei eilutėje yra dar kitų simbolių, laikoma, kad eilutė atitinka integer tipą ir reikšmė apskaičiuojama pagal 1 punktą. Eilutės "4.58 litro" reikšmė 4, "-4.2 laipsniai" - -4, "Kambario temperatūra 10.5" - 0.

Tipo keitimas

Tipo keitimas leis tiksliai pakeisti kintmojo tipą:

<?
$a = 15.2; // $a yra double tipo
$a = (int) $a; // $a yra integer tipo (reikšme 15)
$a = (double) $a; // $a vel yra double tipo (reikšme 15.0)
$b = (string) $a; // $b yra eilute "15"
?>

Kintami kintamieji

PHP palaiko kintmuosius kintamuosius. Paprasto kintamojo reikšmė yra dinaminė, ją galima keisti. O tuo tarpu kintamųjų kintamųjų vardai yra dinaminiai. Ištikrųjų, kintami kintamieji įneša daugiau painianiavos negu naudos. Kintamo kintamojo pavyzdys:

<?
$ID = "ProductID"; // sukuriamas kintamasis, kurio reikšme yra "ProductID"

$$ID = 100; // Pirmojo kintmojo $ID reikšme "ProductID" naudojama kaip kintamojo
// vardas, t.y. sukuriamas kintmasis $ProductID ir jam priskiriama
// reikšme 100 ($ProductID = 100;)

echo( $ProductID ); // Spausdins: 100
echo( $$ID ); // Spausdins: 100
echo( $ID ); // Spausdins: ProductID
?>

Galima net tokia situacija:

<?
$ID = "ProductID"; //
$$ID = "RealID"; // $ProductID = "RealID"
$$$ID = 100; // $RealID = 100;
?>

Darbui su kintamaisiais naudingos funkcijos

gettype()

Gettype() grąžina kintmojo duomenų tipą. Ji grąžina vieną iš šių reikšmių:

"integer" // sveikasis skaičius
"double" // realus skaičius
"string" // eilutė
"array" // masyvas
"object" // objektas
"class" // klasė
"unknown type" // nežinomas tipas

Apie masyvus, objektus ir klases sužinosite vėliau. gettype() pvz:

<?
if (gettype($input) == "integer")
{
$integer_value = $input;
}
?>

settype()

settype() tiksliai nustato kintmojo tipą. Tipas užrašomas eilute ir gali būti toks: "array", "double", "object", "intetger", "string". Apie tipo nustatymą jau kalbėjome, tačiau ši funkcija ypatinga tuo, jog grąžina true, jei tipas pakeistas sėkmingai, priešingu atveju - false. Pvz:

<?
$a = 78.5;
settype( $a, "integer" ); // $a = 78;

if (settype( $value, "integer"))
{
echo( "Pakeitimas sekmingas" );
}
else
{
echo( "Tipo keitimas nepavyko" );
}
?>

isstet(), unset()

Funkcija unset() skirta kintamųjų sunaikinimui. Ji išlaisvina atminties vietą, kurią buvo užėmęs kintamasis. Funkija isset() parado, ar kintamsis yra apibrėžtas (jam priskirta reikšmė) ir grąžina true, jei taip. Pvz:

<?
$ID = 548;
if (isset($ID))
{
echo( "ProductID ".$ID );
}

unset( $ID ); // Kintmojo apibre˛tis panaikinama

if (isset($ID)) // false
{
echo( "Šito nespausdins" );
}
?>

empty()

Funkcija empty() panaši į isset(). Ji grąžina true, jei kintamasis neapibrėžtas, yra 0 (0.00) arba tuščia ilutė "". Kitu atveju grąžina false.

<?
empty($new); // true
$new = 1;
empty($new); // false
$new = 0;
empty($new); // true
$new = "";
empty($new); // true
$new = "laba diena";
emtpy($new); // false
unset($new);
empty($new); // true
?>

is. . .()

Funkcijos is_int(), is_integer(), is_long() grąžina true, jei kintamsis yra integer,

is_duoble(), is_float(), is_real() - jei kintmasis - double,

<?
if (is_string($value))
{
echo( "Tai eilute" );
}
?>

...val()

Šios funkcijos dar vienu būdu leidžia tiksliai pakeisti kintamojo tipą į integer, double bei string. Pvz:

<?
$ProductID = "543AB";
$a = intval($ProductID); // $a = 543;
?>

Be to, funkcija intval() turi nebūtiną papildomą parametrą, leidžiantį nurodyti skaičiavimo sistemą konvertuojant. Pvz:

<?
$a = intval( $ProductID, 16 );// $ProductID buvo interpretuotas kaip šešioliktainis skaicius
?>

Kintamieji iš HTML formos

Kaip jau sužinojote, PHP programoje galima apsibrėžti ir naudoti įvairaus tipo kintamuosius. Tačiau be to yra dar kitas būdas kintamiesiems apibrėžti. Kintamieji, gaunami iš HTML formų, yra sukuriami automatiškai programos vykdymo pradžioje. Jie atlieka labai svarbų vaidmenį, nes perduoda vartotojo įvestą informaciją. Iliustruosime pavyzdžiu:

<HTML>
<!--forma.html-->
<BODY>

<FONT FACE="Verdana">
<FORM ACTION="go.php" METHOD="post" NAME="goapp">

<H3>U˛pildykite šia forma:</H3>
<TABLE BORDERCOLOR="#C0C0C0" BORDER="1" CELLPADDING="5" CELLSPACING="0">

<TR>
<TD><STRONG>Vardas, pavarde:</STRONG></TD>
<TD><INPUT TYPE="text" SIZE="20" MAXLENGTH="50" NAME="vardas"></TD>
</TR>

<TR>
<TD><STRONG>Miestas:</STRONG></TD>
<TD>
<SELECT NAME="miestas" SIZE="1" >
<OPTION VALUE="vl" SELECTED>Vilnius</OPTION>
<OPTION VALUE="kn">Kaunas</OPTION>
<OPTION VALUE="kl">Klaipeda</OPTION>
</SELECT>
</TD>
</TR>

<TR>
<TD><STRONG>ADRESAS:</STRONG></TD>
<TD><INPUT TYPE="text" SIZE="20" MAXLENGTH="50" NAME="adresas"></TD>
</TR>

<TR>
<TD><STRONG>Telefonas:</strong></TD>
<TD><INPUT TYPE="text" SIZE="20" MAXLENGTH="15" NAME="telefonas"></TD>
</TR>

<TR>
<TD><STRONG>Email adresasa:</STRONG></TD>
<TD><INPUT TYPE="text" NAME="emailas" SIZE="20" MAXLENGTH="50"></TD>
</TR>
TR>
<TD><INPUT TYPE="checkbox" NAME="moketi" CHECKED><STRONG>Moketi pristacius</STRONG></TD>
<TD><INPUT TYPE="submit" NAME="go" VALUE="Siusti"> <INPUT TYPE="Reset" VALUE="Trinti"></TD>
</tr>

</TABLE>
</FORM>
</FONT>

</BODY>
</HTML>
?>






Kaip matome, turme formą goapp, kuri turi tokius elementus:

<?
<INPUT NAME="vardas" TYPE="text" SIZE="20" MAXLENGTH="50">
<SELECT NAME="miestas" SIZE="1">
<INPUT NAME="adresas" TYPE="text" SIZE="20" MAXLENGTH="50">
<INPUT NAME="telefonas" TYPE="text" SIZE="20" MAXLENGTH="15" >
<INPUT NAME="emailas" TYPE="text" SIZE="20" MAXLENGTH="50">
<INPUT NAME="moketi" TYPE="checkbox" CHECKED>
<INPUT NAME="go" TYPE="submit" VALUE="Siusti">
<INPUT TYPE="Reset" VALUE="Trinti">
?>

Kaip matote, kiekvienas formos elementas turi sąvybę NAME, vadinasi, formos scripte go.php automatiškai bus sukurti tokie kintamieji: $vardas, $miestas, $adresas, $telefonas, $emailas, $moketi, $go. Visų jų reikšmės, išskyrus $go, bus nustatomos vartotojo. Simple :).

---
[^] Atgal
[«] Skaitykla

* * Gen. time: 0.017
* © xneox.com