Всех приветствую этим холодным днем, сегодня я расскажу Вам о том, как можно  изменить тип переменной в PHP.

Типы переменных в PHP?

Те, кто только начинает изучать PHP и до этого работал с более крупными языками такими как Java, C++, Pascal  знают, что такое явное указание типа переменной. В этих языках, чтобы работать с переменной необходимо сначала было явно указать какой тип данных будет храниться в этой переменной (число, строка, массив).

В PHP же  используется динамическая типизация переменных. Созданная один раз, Ваша переменная может содержать в себе любые типы данных.

Изменение типа переменной.

Изменение переменной можно сделать разными способами к примеру:

$string = 'Строка'; // создаем переменную со строкой
$string = (array) $string; // изменение типа переменной на массив
var_dump($string); // ответ будет такой - array(1) { [0]=> string(6) "Строка" }

Как видно из примера, можно явно указать переменной на какой тип мы хотим её сменить, в данном случае на массив. После чего все значения хранящиеся в данной переменной по возможности будут перенесены или преобразованы, так строка стала нулевым элементом массива.

Так же, можно при изначальном создании переменной указать какой тип данных она будет в себе содержать:

$string = (string) 15;
var_dump($string); // вернет string(2) "15"

Если же не указать  ключевое слово (string) при задании значения переменной $string, интерпретатор php присвоит ей числовой тип, и тогда число 15 будет обрабатываться как число а не строка.

В сокращенном виде  это можно сделать просто заключив число 15 в кавычки при создании переменной «15», результат в таком случае будет тот же.

Ещё одним способом явного указания типа переменной в PHP является специальная функция settype.

$int = "5test"; //
settype($int,"integer"); /* первым аргументом указываем нашу переменную
вторым указываем тип в который хотим её преобразовать */
var_dump($int); // вернёт int(5)

Функция settype попыталась преобразовать строку «5test» в число и найдя в нем число 5 преобразовала переменную в число. Результат который нам и нужен был.

Так же для того, чтобы определить тип конкретной переменной можно воспользоваться функцией gettype.

$foo = "15testString";
echo gettype($foo); // вернет string

Ну и последний на сегодня пример пожалуй будет с логическим типом.

$bool = true;
settype($bool,"string"); // конвертируем логическую переменную в строку
var_dump($bool); // вернет string(1) "1"

Почему вернул единицу? Потому что php хранит в логических переменных только числовые выражения. True всегда будет единицей, false всегда будет ложью.

На этом все. До скорой встречи!

dmkweb.ru Права на контент защищены.