| PHP Ръководство | ||
|---|---|---|
| Предишна страница | Глава 11. Типове | Следваща страница |
PHP не изисква (и не поддържа) изрично дефиниране на типа при
декларирането на променлива; типът на променливата зависи
от контекста, в който се използва. С други думи, ако
присвоите низова стойност на променливата $var,
$var става низ. Ако в последствие присвоите
целочислена стойност на $var, то тя става цяло число.
Пример за автоматичното преобразуване на типове в PHP е операторът за събиране '+'. Ако кой да е от операндите е плаващо число, то всички операнди се изчисляват като плаващи и резултатът ще бъде отново плаващо число. В противен случай операндите ще бъдат интерпретирани като цели числа и резултатът също ще бъде цяло число. Забележете, че това НЕ променя типа на самите операнди; единствената промяна е в начина, по който те се изчисляват.
<?php $foo = "0"; // $foo е низ (ASCII 48) $foo += 2; // $foo сега е цяло число (2) $foo = $foo + 1.3; // $foo сега е плаващо (3.3) $foo = 5 + "10 Little Piggies"; // $foo е цяло число (15) $foo = 5 + "10 Small Pigs"; // $foo е цяло число (15) ?> |
Ако предните два примера изглеждат неясни, разгледайте Превръщане на низ в число.
Ако изрично да накарате променлива да се изчисли като даден тип, вижте раздела за Преобразуване на типове. Ако желаете да промените типа на променлива, вижте settype().
Ако искате да изпробвате някой от примерите в този раздел, можете да използвате функцията var_dump().
Забележка: Поведението при автоматично преобразуване в масив за момента не е дефинирано.
Също, понеже PHP поддържа индексирането в низове чрез отместване посредством същия синтаксис като индексирането в масиви, следното е в сила за всички версии на PHP:
Вижте раздел Достъп до знаците в низ за повече информация.
Преобразуването на типове в PHP работи доста подобно на това в C: името на желания тип се поставя в скоби преди променливата, която трябва да бъде преобразувана.
Разрешените преобразувания са:
(int), (integer) - преобразува в целочислен
(bool), (boolean) - преобразува в булев
(float), (double), (real) - преобразува в плаващ
(string) - преобразува в низ
(array) - преобразува в масив
(object) - преобразува в обект
Забележете, че табулациите и интервалите са разрешени вътре в скобите, така че следните са функционално еквивалентни:
Забележка: Вместо да преобразувате променлива в низ, можете да я заградите с кавички.
Възможно е резултатът от преобразуването между някои типове да не е съвсем очевиден. За повече информация, вижте тези раздели:
Преобразуване в булев
Преобразуване в цяло число
Преобразуване в плаващ
Преобразуване в низ
Преобразуване в масив
Преобразуване в обект
Преобразуване в ресурс
Таблица за сравнение на типове
| Предишна страница | Начало | Следваща страница |
| Псевдо-типове, използвани в настоящата документация | Начало на раздела | Променливи |