Обучение в PHP - част 2 (Функции за променливи)
Функции за определяне и задаване типа на променлива

Въпреки че в PHP не е необходимо да задавате типа на променливите, в някои случаи това е необходимо. Например, може да ви се наложи динамично да задаете типа на променливата в зависимост от нуждите на визуализацията. За да направите това ,първо трябва да определите от какъв тип е текущата и стойност и да зададете новия тип. PHP предоставя две функции за определяне и задаване типа на променливата.

Функцията settype()

Тази функция насила конвентира типа на променлива до друг. Синтаксиса на функцията е settype() е следния

boolen settype (mixed $myvariable, string, string setdatatype)

Функцията settype() конветира типа на променливата $myvariable до типа setdatatype. Върнатата стойност е от булев тип и е True, ако конвентирането е успешно. Ако не е извършено конвентиране, се връща стойност False.
Стойността setdatatype може да бъде integer, string, boolen, float, null, array и object.

Например:

$Mystrval = "container 72" // Низ
$Myboolval = False // Булева стойност
settype($Myboolvas, "string"); // Резултат 0
settype($Mystrval, "string"); // Резултат 72
settype($Myboolvas, "integer"); // Резултат 0


В горния пример променливата $Myboolval и $Mystrval съдържат съответно булева и низова стойност. Функцията settype() бе използвана за явно конвентиране на типовете на двете променливи до integer.

Функцията gettype()

Функцията gettype() връща типа на дадена променлива. Синтаксисът на функцията е следния

string gettype( mixed $mixedvar)

Функцията извлича типът на променливата $mixedvar и го превръща като низ. Низът може да съдържа integer, string, boolen, float, null, array, object или resourse.

Например:
<?php

$myval = "10 pigs" + 2;
echo $myval; // Извежда 12
echo gettype ( $myval); // Извежда integer

settype ( $myval, "double");
echo $myval; // Извежда 12
echo gettype ( $myval); // Извежда double

$myval = "10pigs" + 2;
echo $myval; // Извежда 12
echo gettype ( $myval); // Извежда integer

$myval = "10 pigs" . 2;
echo $myval; // Извежда 10
echo gettype ( $myval); // Извежда string

settype ( $myval, "integer");
echo $myval; // Извежда 10
echo gettype ( $myval); // Извежда integer

$myval = "10pigs" . 2;
echo $myval; // Извежда 10pigs2
echo gettype ( $myval); // Извежда string

settype ( $myval, "integer");
echo $myval; // Извежда 10
echo gettype ( $myval); // Извежда integer

settype ( $myval, "boolen");
echo $myval; // Извежда (1/true)
echo gettype ( $myval); // Извежда boolen

$myval = "";
settype ( $myval, "boolen");
echo $myval; // Извежда (NULL/false/blank)
echo gettype ( $myval); // Извежда integer

?>

В горните примери се извличат типовете на променливите и се показват на екрана. Също така чвно се променят типовете на променливите с помоща на функцията settype() и се визуализират типовете с помоща на функцията gettype().

Константи

Да предположим, че трябва да използвате конкретна стойност в цялото си приложение. Например, да предположим, че приложението ви намира най-високите резултати, постигнати от учениците на даден тест. За да намерите тази стойност, приложението ви трябва да съхрани тези на статично място, за да може да осъществява достъп до тях при разглеждането на резултатите на всеки ученик. В този случай вместо да създавате множество инстанции на едни и същи данни, можете да използвате константи. Константата е мястото в паметта, къдетоможете да съхранявате стойности, непроменящи се по време на изпълнение на програмата.

Дефиниране на константи

Константите имат следните характеристики:


- те вземат предвид регистъра на буквите
- Използват същата конвенция за задаване на имена, както променливите
- Могат да започват само с буква или символ за подчертаване, следвани от числа и букви
- По подразбиране имат глобална област на действие

За да дефинирате константа трябва да използвате функцията define(). След като константата е дефинирана, тятя не може да се променя. Стойността на константата може да бъде от един от следните типове: string, boolen, double или integer.
За разлика от променливите можете да използвате константата с името й, вместо да добавяте символа $ пред него. Можете да използвате функцията constant(), в случай, че искате динамично да получите стойност на константата. Функцията get_defined_constant() се използва за получаване на списък с дефинираните константи в момента.

Разгледайте следния пример:

<?php

define ("CONSTANT", "This cannot be changet");
echo &CONSTANT; // Извежда This cannot be changet
echo &Cconstant; // Извежда Constant
echo "CONSTANT"; // Извежда CONSTANT
echo 'CONSTANT'; // Извежда CONSTANT

?>


В горния пример се задава константна стойност с име CONSTANT, която съхранява стойността This cannot be changet. Тъй като при имената на константите се взима предвид регистъра на буквите, името CONSTANT се различава от името Constant. по тази причина по време на изпълнението на втория израз echo, копилаторът първо търси тази константа в предварително зададените константи. След като не открие такава константа, претърсва константите дефинирани от потребителя. След като все още не намери такава константа, отпечатва името.
Компилаторът на PHP обаче ще изведе забележка за тази операция. PHP приема всички стойности извън кавичките и без знак за долар законстанти и отпечатва стойността. С други думи, не може да отпечатва константа в кавички.
Въпреки че при константите по подразбиране се прави разлика в регистъра на буквите, можете да използвате функцията define(), за да забраните тази разлика. Разгледайте примера:

define ("CONSTANT", "This cannot be changet.");
// Създава константа, различаваща регистъра на буквите.
define ("CONSTANT", "This cannot be changet", 1);
// Създава константа, не различаваща регистъра на буквите.


В горния пример, когато добавите като трети параметър единица, функцията define() задава константа, която не прави разлика в регистъра на буквите. Сега да разгледаме някои от предварително дефинираните константи в PHP

|-------------------|----------------------------------------------------------------------------|
| Име | Стойност |
|-------------------|----------------------------------------------------------------------------|
PHP_VERSION Версията на PHP иузползвана в момента.
_FILE_ Името на файла, който се анализира в момента. Ако тази константа се използва
във вмъкнат файл, тогава тя съдържа името на вмъкнатия файл, а не на
родителския.
_LINE_ Броя на редовете във файла, който се анализира в момента.Ако тази константа
се използва във вмъкнат файл, тогава тя съдържа името на вмъкнатия файл,
а не на родителския.
E_EROR Показва грешка, след което не е възможно да продължи изпълнението на скрипта
E_PARSE Показва че анализзаторът е открил синтактична грешка в скрипта и програмата не
може да продължи изпълнението се
E_WARNING Показва че е възникнало предупреждение в PHP, но програмата все още може да
продължи изпълнението си.
E_ALL Комбинация от всички E_* константи.
Е_NOTICE Показва че е възникнала ситуация, която трябва да забележите, но не е грешка
TRUE Стойността TRUE
FALSE Стойността FALSE
NULL Стойността NULL


/ Трябва да сте регистриран за да напишете коментар /