ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Массивы. Часть Третья


28-12-2009

5.5. Преобразование массивов
Массивы можно преобразовывать в другие типы данных. При преобразовании в целое число, вещественное или логическое, будет получено значение, равное 1. При преобразовании массива в строковой тип данных будет получено слово Array. Это имеет смысл, если массив ошибочно использовался как строка. Массив будет преобразован в строку, содержащую значение Array, если его использовать в контексте, когда требуется строковой тип данных, как, например, в операторе print. Массив нельзя использовать в контексте, в котором используются числа, как, например, в операторе сложения, так как это приводит к ошибке. В листинге 5.7 приведены примеры преобразования массивов в другие типы данных.
| Листинг 5.7. Преобразование массивов в другие типы данных_
$userInfo = array(
"Name"=>"Леон Аткинсон",
"Location"=>"Мартинес, Калифорния",
"Occupation"=>"Программист",
"PHP Version"=>5.0); //Если логическое, целое или вещественное, // то PHP преобразует массив в 1 $asBool = (boolean)$userInfo; print("Логическое: $asBool
n"); $asInt = (integer)$userInfo; print("Целое: $asInt
n"); $asDouble = (double)$userInfo; print("Вещественное: $asDouble
n"); // При преобразовании в строку PHP // возвращает строку "Array" $asString = (string)$userInfo; print(" Строка: $asString
n"); //При преобразовании массива в объект
//PHP делает попытку преобразовать все элементы в свойства. //Элементы с пробелами вместо индексов не теряются, // а становятся недоступными $asObject = (object)$userInfo; print("Объект: $asObject->Location
n"); print("$asObject->PHP Version
n"); //не действует! //если убрать комментарий у следующего оператора, //препроцессор обнаружит синтаксическую ошибку //print($userInfo + 1);
//PHP знает, как преобразовать массив в строку, хотя //и безрезультатно.
print("Преобразовать в строку:" . $userInfo . "
n"); //PHP не преобразует массив в объект print($userInfo->Name . "
n");
?>

 Наиболее полезным преобразованием массива является преобразование массива в объект. Его элементы в таком случае становятся свойствами объекта. Однако элементы, индексированные по значениям, которые не могут быть свойствами, остаются недоступными. Эти значения не теряются, и если переменная будет преобразована в массив, она опять станет переменной. Объектам посвящается глава 6, "Классы и объекты".
5.6. Оператор +
Оператор + для массивов имеет специальное предназначение: он позволяет объединять элементы из массива, указанного в правой части, с элементами массива, указанного в левой части. Важное значение имеют индексы массивов. Если такой индекс существует в массиве, указанном слева, он остается неизменным. Добавляются только элементы массива, указанного справа, к индексам, отличным от индексов элементов, перечисленных слева (листинг 5.8).
| Листинг 5.8. Использование оператора +
// объявление массивов $a = array(
0=>"Apple",
2=>"Ball");
$b = array(
1=>"Cat",
2=>"Dog");
foreach(($a + $b) as $key=>$value)
{
print("$key: $value
n");
}

На рис. 5.1 показано, что выводит на печать программный код, представленный в листинге 5.8. Как видно, выводится массив с тремя элементами; элемент с индексом 2 использует значение из массива a, а не b.
В главе 11, "Данные", описывается функция array_merge, с помощью которой можно осуществить объединение другого типа.
Массивы

5.7. Ссылка на массивы внутри строк
Как вы уже знаете из главы 2, "Переменные, операторы и выражения", посередине строки можно поместить переменную, используя двойные кавычки. После подстановки ее заменит значение переменной. Одномерный массив с целочисленными индексами будет корректно проинтерпретирован внутри двойных кавычек. Но использование в строках многомерных массивов довольно проблематично. Для того чтобы использовать многомерные массивы, воспользуйтесь фигурными скобками. Это приостановит обычный синтаксический анализ, который будет производиться в пределах строки, в двойных кавычках. Конечно, строки всегда поддаются конкатенации. В листинге 5.9 продемонстрированы различные методы использования массивов внутри строк.
Массивы

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Массивы. Часть Вторая. PHP. Классы и объекты