Директивы конфигурации сервера Изменение типа
Директивы конфигурации сервера
Изменение типа
PHP не требует явного определения типа при объявлении переменной, тип переменной определяется по контексту в котором она используется. То есть, если вы присваиваете строковое значение переменной var, var становится строкой. Если затем присвоить переменной var значение целого (числа), то она станет целым.
Примером автоматического преобразования типа в PHP может служить оператор сложения ‘+’. Если какой-либо из оперендов является числом с дробной частью (тип double), то затем все операнды оцениваются как double и результат будет иметь тип double. Иначе, эти операнды будут интерпретированы как целые (integers) и результат будет так же иметь тип integer. Отметим, что при этом НЕ меняются типы самих операндов, меняется только оценка этих операндов.
$foo = «0»; // $foo является строкой (ASCII 48)
$foo++; // $foo является строкой «1» (ASCII 49)
$foo += 1; // $foo сейчас является целым (2)
$foo = $foo + 1.3; // $foo сейчас имеет тип double (3.3)
$foo = 5 + «10 Little Piggies»; // $foo является целым (15)
$foo = 5 + «10 Small Pigs»; // $foo является целым (15)
Если последние два примера выше кажутся неясными, смотрите Преобразование строк.
Если вы хотите чтобы переменная принудительно оценивалась как имеющая определенный тип, смотрите раздел Приведение типа. Если вы желаете изменить тип переменной, смотрите settype().
Определение типов переменных
Поскольку PHP определяет типы переменных и преобразует их (в общем) по мере необходимости, не всегда очевидно какой тип данная переменная имеет в какой-то отдельный момент. Поэтому PHP включает несколько функций, которые позволяют определить текущий тип переменной. Это функции gettype(), is_long(), is_double(), is_string(), is_array(), и is_object().
Приведение типа
Приведение типа работает в PHP во многом так же как в C: название требуемого типа записывается в круглых скобках перед переменной, которая должна быть приведена к данному типу.
$foo = 10; // $foo is an integer
$bar = (double) $foo; // $bar is a double
Допускается следующее приведение типов:
(int), (integer) — приведение к целому
(real), (double), (float) — приведение к типу double
(string) — приведение к строке
(array) — приведение к массиву
(object) — приведение к объектной переменной
Заметим, что табуляция и пробелы допускаются внутри круглых скобок, поэтому следующее функционально эквивалентно:
$foo = (int) $bar;
$foo = ( int ) $bar;
Преобразование строк
Когда строковая переменная оценивается как числовая, результирующее значение и тип переменной определяются следующим образом.
Переменная string будет оценена как double, если она содержит любой из символов ‘.’, ‘e’, или ‘E’. Иначе она будет оценена как integer.
Данное значение задается начальной частью строковой переменной. Если строка начинается с допустимых цифровых данных, то это значение и будет использоваться. Иначе, будет значение 0 (ноль). Допустимые цифровые данные — это конструкция из факультативного символа, следующего за одной или несколькими цифрами (содержащими факультативно десятичную точку), обозначающего экспоненту. Экспонента может обозначаться символом ‘e’ или ‘E’, который может следовать за одной или несколькими цифрами.
$foo = 1 + «10.5»; // $foo тип double (11.5)
$foo = 1 + «-1.3e3»; // $foo тип double (-1299)
$foo = 1 + «bob-1.3e3»; // $foo тип integer (1)
$foo = 1 + «bob3»; // $foo тип integer (1)
$foo = 1 + «10 Small Pigs»; // $foo тип integer (11)
$foo = 1 + «10 Little Piggies»; // $foo тип integer (11);
// строка содержит ‘e’
Дополнительную информацию смотрите в руководстве Unix страница для strtod(3).
Манипуляции с массивом
PHP поддерживает как скалярные так и ассоциативные массивы. Фактически, между ними нет разницы. Вы можете создать массив используя функции list() или array(), или можно явно задать значение каждого элемента массива.
$a[0] = «abc»;
$a[1] = «def»;
$b[«foo»] = 13;
Можно также создать массив просто добавляя в него значения.
$a[] = «hello»; // $a[2] == «hello»
$a[] = «world»; // $a[3] == «world»
Массив может сортироваться функциями asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), и uksort() в зависимости от типа желаемой сортировки.
Подсчет количества элементов массива осуществляется функцией count().
Перемещаться по массиву позволяют функции next() и prev(). Другим типовым способом перемещения по массиву является использование функции each().
Мой блог находят по следующим фразам