PHP: Òèïû äàííûõ
Àâòîð: | Àðòåìüåâ Ñåðãåé Èãîðåâè÷ |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
Òèï äàííûõ - ýòî îïèñàíèå, îïðåäåëÿþùåå ñâîéñòâà è ïîðÿäîê îáðàáîòêè äàííûõ. Íàïðèìåð, ôðàçà "ïåðåìåííàÿ $str èìååò òèï äàííûõ "ñòðîêà"" îçíà÷àåò, ÷òî â ýòîé ïåðåìåííîé ìîæåò ñîäåðæàòüñÿ ëþáîå ÷èñëî ñèìâîëîâ, à îïåðàöèÿ ñëîæåíèÿ ñòðîê ïðåäñòàâëÿåò ñîáîé ïîñëåäîâàòåëüíîå ñîåäèíåíèå ñëàãàåìûõ ñòðîê â îäíó.
PHP ïîääåðæèâàåò 8 áàçîâûõ òèïîâ äàííûõ.
- 4 ñêàëÿðíûõ òèïà:
- boolean. Ëîãè÷åñêèé òèï äàííûõ, ïåðåìåííûå äàííîãî òèïà ìîãóò ïðèíèìàòü çíà÷åíèÿ true (ïðàâäà) èëè false (ëîæü).
- integer. Öåëî÷èñëåííûé òèï äàííûõ, ïåðåìåííûå ìîãóò ïðèíèìàòü öåëûå çíà÷åíèÿ (...-2, -1, 0, 1, 2...) â äèàïàçîïå îò -2^31 äî +2^31. Åñëè çíà÷åíèå ïðåâûøàåò äàííûé ïîðîã - îíî àâòîìàòè÷åñêè ïåðåâîäèòñÿ â òèï float.
- float. ×èñëîâîé òèï äàííûõ ñ ïëàâàþùåé òî÷êîé, ìîæåò ñîäåðæàòü êàê öåëûå, òàê è äðîáíûå âåëè÷èíû.
- string. Ñòðîêîâûé òèï äàííûõ. Ñîäåðæèò íåôèêñèðîâàííîå êîëè÷åñòâî ðàçëè÷íûõ ñèìâîëîâ. PHP íå íàêëàäûâàåò íèêàêèõ îãðàíè÷åíèé íà äëèíó ñòðîêè, ïîýòîìó ìîæíî ñìåëî ðàáîòàòü äàæå ñ Î×ÅÍÜ áîëüøèìè ñòðîêàìè.
- 2 êîìïëåêñíûõ (ñîñòàâíûõ) òèïà:
- array. Ìàññèâ, ñîäåðæèò óïîðÿäî÷åííûé ñïèñîê ýëåìåíòîâ. Ïîäðîáíåå î ìàññèâàõ ìû ïîãîâîðèì â îòäåëüíîì ðàçäåëå.
- object. Îáúåêò, ñîäåðæèò íåêèé îáúåêò (ýêçåìïëÿð êëàññà)
- 2 ñïåöèàëüíûõ òèïà:
- resource. Ññûëêà íà àáñòðàêòíûé ýëåìåíò, ò.í. âíåøíèé ðåñóðñ. Ïðèìåðû âíåøíèõ ðåñóðñîâ - ññûëêà íà ôàéë è ññûëêà íà ðåçóëüòàò âûïîëíåíèÿ çàïðîñà.
- NULL. Ïóñòîé òèï äàííûõ, îáîçíà÷àþùèé îòñóòñòâèå êàêîãî-ëèáî çíà÷åíèÿ. Î òàêèõ çíà÷åíèÿõ îáû÷íî ãîâîðÿò "íå îïðåäåëåíî". Ïóñòûì çíà÷åíèåì ìîæíî èíèöèàëèçèðîâàòü ïåðåìåííûå ëþáîãî äðóãîãî òèïà.
 äîêóìåíòàöèè è ñïðàâî÷íèêàõ èñïîëüçóåòñÿ åù¸ 3 ò.í. "ïñåâäîòèïà"
- mixed. Ñìåøàííûé òèï äàííûõ, îçíà÷àåò, ÷òî òèï äàííûõ ïåðåìåííîé íåèçâåñòåí è åãî íàäî îïðåäåëÿòü ïåðåä èñïîëüçîâàíèåì.
- number. ×èñëîâîé òèï, îçíà÷àåò ÷òî çíà÷åíèå èìååò ëèáî òèï äàííûõ int, ëèáî float
- callback. Òèï äàíûõ "ññûëêà íà ôóíêöèþ". Èñïîëüçóåòñÿ ïðè âûçîâå íåêîòîðûõ ôóíêöèé. Ìû ðàññìîòðèì ïîäðîáíåå ýòîò òèï äàííûõ ïðè ðàáîòå ñ ìàññèâàìè è ðåãóëÿðíûìè âûðàæåíèÿìè.
PHP ïîçâîëÿåò ëåãêî ìåíÿòü òèïû äàííûõ. Íàïðèìåð, ñëåäóþùèé êîä ñ òî÷êè çðåíèÿ èíòåðïðåòàòîðà ñîâåðøåííî êîððåêòåí:
<php $someVar = NULL; echo $someVar; $someVar = "îòðûâîê èç ñêàçêè"; echo $someVar; $someVar = 123; echo $someVar; ?>
Êðîìå òîãî, ïðèâåäåíèå òèïîâ ìîæåò áûòü ñäåëàíî ÿâíî ïðè ïîìîùè ôóíêöèé gettype() è settype().
<php $someVar = 123; // îïðåäåëÿåì $someVar êàê // ïåðåìåííóþ öåëî÷èñëåííîãî òèïà. echo gettype($someVar); // ïîëó÷èì íà âûõîäå "integer" settype($someVar, "string") // ïåðåîïðåäåëÿåì òèï äàííûõ íà ñòðîêîâûé echo gettype($someVar); // ïîëó÷èì íà âûõîäå "string" ?>
Ñðàçó ìîãó ñêàçàòü, ÷òî íåîáõîäèìîñòü â ÿâíîì ïðèâåäåíèè òèïîâ âîçíèêàåò î÷åíü ðåäêî, ò.ê. PHP ïðè ðàáîòå ñ äàííûìè ñàì êîððåêòíî ïðîâîäèò âñå íåîáõîäèìûå ïðåîáðàçîâàíèÿ. À âîò ôóíêöèÿìè îïðåäåëåíèÿ òèïîâ ìû áóäåì ïîëüçîâàòüñÿ äîñòàòî÷íî ÷àñòî, îñîáåííî ïðè îáðàáîòêå äàííûõ, ïîëó÷àåìûõ èçâíå èëè ââîäèìûõ ïîëüçîâàòåëåì. Íî îá ýòîì ìû ïîãîâîðèì â ñîîòâåòñòâóþùèõ ðàçäåëàõ.