В този урок ще поговорим за типовете данни в PHP. Това е теоритичен, но изключително полезен урок, който ще ви обогати с информация за типовете данни в програмирането.
В силно типизираните езици при създаването на променливата вие трябва да определите каква по вид е тя и да зададете какъв тип данни може да съдържа. В този пример при присвояването на стойност към променливата, която стойност не е валидна, ще настъпи грешка.
При PHP можем да присъединяваме всеки тип данни към всяка една променлива във всеки един момент. PHP следи автоматично данните във всеки един момент и ние можем да прехвърляме от един тип данни към друг, когато това ни е необходимо.
Основни типове данни, които поддържа PHP
- integer - може да съдържа цели числа;
- boolean - специален тип данни, който показва истинност или неистинност;
- float - числа с плаваща запетая;
- double - числа с плаваща запетая, double е с много по-голяма точност от float;
- string - това е текст. Може би най-често използваният тип данни;
- array - масив - специфичен тип данни, с който ще се запознаем по-нататък. Изключително мощен тип данни в PHP;
- object - най-общият тип данни, който идва от обектно-ориентираните езици. За тях ще говорим по-нататък;
- null - специален тип данни, който значи нищо. За компютрите нищо всъщност има физически смисъл.
- Има и други типове данни, с които ще се запознаем по-нататък.
Трябва да знаем какъв тип данни имаме в променливата, за да реализираме правилно логиката в своето приложение.
Да вземем за пример следния код:
<?php
$potrebitel='php';
var_dump($potrebitel);
?>
var_dump ще ни покаже типа данни на променливата в момента. Тази функция се използва само по време на разработка. В никакъв случай не я пускайте на работещ проект. Тази функция връща резултата към браузъра. В нашия пример ще видите в браузъра следното нещо:
string(3) "php"
Това означава, че нашата променлива по вид е string и е с дължина от три символа. Виждаме и самата стойност на променливата, която в нашия пример е php.
Нека да направим следното нещо, изпробвайте следния код:
<?php
$potrebitel='123456789';
var_dump($potrebitel);
?>
В браузъра си ще видите следното нещо:
string(9) "123456789"
Това не е грешка. Това за PHP е текст с дължина 9 символа и стойност 123456789.
Сега изпълнете следния код:
<?php
$potrebitel=123456789;
var_dump($potrebitel);
?>
Единствената разлика е, че няма кавички при стойността 123456789, но променливата е станала друг тип, тоест в браузъра ще видите следното нещо:
int(123456789) . Типът на данните вече е integer - цяло число със стойност 123456789.
Вижте какъв ще бъде резултатът, ако напишем следното нещо:
<?php
$potrebitel=88.74;
var_dump($potrebitel);
?>
В браузъра ще видите, че типът данни вече е станал float(88.74).
Но вижте какво ще стане, ако сложим същата стойност на променливата в кавички:
<?php
$potrebitel='88.74';
var_dump($potrebitel);
?>
Браузърът вече ни показва string(5) "88.74". Кавичките казват, че дадената стойност ще бъде текст,тоест string.
Изпробвайте сега следния програмен код:
<?php
$potrebitel=true;
var_dump($potrebitel);
?>
var_dump тук ще ни покаже следното нещо в браузъра bool(true) - тоест това е булева променлива със стойност true, тоест истина. Изпробвайте същото нещо, но на мястото на true поставете false.
Изпробвайте и този програмен код:
<?php
$potrebitel;
var_dump($potrebitel);
?>
Тук нямаме присвоена никаква стойност към променливата, тоест нейният тип е NULL, var_dump покава точно това.
Notice: Undefined variable: potrebitel in 3_danni.php on line 5
NULL
Този Notice ни показва, че променливата не е дефинирана коректно. За този тип грешки ще поговорим по-нататък.
Препоръка при работата с текст
Винаги, когато работите с текст, присвоявайки го на променлива, поставяйте този текст в единични кавички, за да бъде разпознат правилно. Кодът ще работи, дори ако текстът не е поставен в такива кавички, но това е изключително лоша практика.
Когато не се поставят кавички биха могли да възникнат някои специфични проблеми. Например при поставяне на разстояние между някаква дума е възможно текстът да не бъде разпознат правилно, тъй като PHP не знае, че това е обикновен текст и се опитва да го интерпретира като PHP код.
Другата грешка, която се появява в немалко случаи, е свързана с употребата на думички със специално значение като as, for и т.н., които имат специално значение в програмирането. За тях ще поговорим по-нататък, но за да избегнете всички тези проблеми, просто поставяйте текста в единични кавички.
Текстът, поставен в двойни кавични също ще работи, но има много голяма разлика между двата типа кавички, за която ще поговорим в някой от следващите уроци.
Главното правило е за PHP е, че всичко в кавички е текст, ако не е текст - би могло да е някакъв програмен код.