﻿<?php
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
echo "<HTML><HEAD><TITLE></TITLE>\n";
echo "<META content=\"TEXT/HTML; CHARSET=WINDOWS-1251\" http-equiv=CONTENT-TYPE>\n";
echo "<META content=\"Microsoft FrontPage 4.0\" name=GENERATOR>\n";
echo "<STYLE></STYLE>\n";
echo "</HEAD>\n";
echo "<body background=../FON.JPG>\n";
echo "<ul>\n";
echo "\n";
echo "  <li><a href=\"#a\"><font face=\"Times New Roman\" size=3>Глава 2.\n";
echo "    Переменные и типы данных</font> </a> </li>\n";
echo "  <ul>\n";
echo "    <li><a href=\"#b\"><font face=\"Times New Roman\" size=\"3\">Целые\n";
echo "      числа</font>\n";
echo "      </a>\n";
echo "    </li>\n";
echo "    <li><a href=\"#c\"><font face=\"Times New Roman\" size=\"3\">Восьмеричная\n";
echo "      и шестнадцатеричная запись</font>\n";
echo "      </a>\n";
echo "    </li>\n";
echo "    <li><a href=\"#d\"><font face=\"Times New Roman\" size=\"3\">Вещественные\n";
echo "      числа</font>\n";
echo "      </a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#e\"><font face=\"Times New Roman\" size=\"3\">Стандартная\n";
echo "          запись</font></a></li>\n";
echo "        <li><a href=\"#f\"><font face=\"Times New Roman\" size=\"3\">Научная\n";
echo "          запись</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#g\"><font face=\"Times New Roman\" size=\"3\">Строковые\n";
echo "      значения</font>\n";
echo "      </a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#h\"><font face=\"Times New Roman\" size=\"3\">Строковое\n";
echo "          присваивание</font></a></li>\n";
echo "        <li><a href=\"#i\"><font face=\"Times New Roman\" size=\"3\">Синтаксис\n";
echo "          встроенной документации</font></a></li>\n";
echo "        <li><a href=\"#j\"><font face=\"Times New Roman\" size=\"3\">Обращение\n";
echo "          к отдельным символам строк</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#k\"><font face=\"Times New Roman\" size=\"3\">Массивы</font>\n";
echo "      </a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#l\"><font face=\"Times New Roman\" size=\"3\">Одномерные\n";
echo "          индексируемые массивы</font></a></li>\n";
echo "        <li><a href=\"#m\"><font face=\"Times New Roman\" size=\"3\">Одномерные\n";
echo "          ассоциативные массивы</font></a></li>\n";
echo "        <li><a href=\"#n\"><font face=\"Times New Roman\" size=\"3\">Многомерные\n";
echo "          индексируемые массивы</font></a></li>\n";
echo "        <li><a href=\"#o\"><font face=\"Times New Roman\" size=\"3\">Многомерные\n";
echo "          ассоциативные массивы</font></a></li>\n";
echo "        <li><a href=\"#p\"><font face=\"Times New Roman\" size=\"3\">Смешанное\n";
echo "          индексирование</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#q\"><font face=\"Times New Roman\" size=\"3\">Объекты</font></a></li>\n";
echo "    <li><a href=\"#r\"><font face=\"Times New Roman\" size=\"3\">Логические\n";
echo "      величины(истина/ложь)</font></a></li>\n";
echo "    <li><a href=\"#s\"><font face=\"Times New Roman\" size=\"3\">Идентификаторы</font></a></li>\n";
echo "    <li><a href=\"#t\"><font face=\"Times New Roman\" size=\"3\">Переменные</font>\n";
echo "      </a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#u\"><font face=\"Times New Roman\" size=\"3\">Объявление\n";
echo "          переменных</font></a></li>\n";
echo "        <li><a href=\"#v\"><font face=\"Times New Roman\" size=\"3\">Область\n";
echo "          видимых переменных</font></a></li>\n";
echo "        <li><a href=\"#w\"><font face=\"Times New Roman\" size=\"3\">Статические\n";
echo "          переменные</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#x\"><font face=\"Times New Roman\" size=\"3\">Переключение\n";
echo "      типов</font></a></li>\n";
echo "    <li><a href=\"#y\"><font face=\"Times New Roman\" size=\"3\">Преобразование\n";
echo "      типов</font></a></li>\n";
echo "    <li><a href=\"#z\"><font face=\"Times New Roman\" size=\"3\">Присваивание</font>\n";
echo "      </a>\n";
echo "      <ul>\n";
echo "        <li><a href=\"#aa\"><font face=\"Times New Roman\" size=\"3\">Присваивание\n";
echo "          по значению</font></a></li>\n";
echo "        <li><a href=\"#bb\"><font face=\"Times New Roman\" size=\"3\">Присваивание\n";
echo "          по ссылке</font></a></li>\n";
echo "      </ul>\n";
echo "    </li>\n";
echo "    <li><a href=\"#cc\"><font face=\"Times New Roman\" size=\"3\">Переменные\n";
echo "      в переменных</font></a></li>\n";
echo "    <li><a href=\"#dd\"><font face=\"Times New Roman\" size=\"3\">Стандартные\n";
echo "      переменные</font></a></li>\n";
echo "    <li><a href=\"#ee\"><font face=\"Times New Roman\" size=\"3\">Константы</font></a></li>\n";
echo "    <li><a href=\"#ff\"><font face=\"Times New Roman\" size=\"3\">Итоги</font></a></li>\n";
echo "  </ul>\n";
echo "</ul>\n";
echo "<A NAME=\"a\"></A>\n";
echo "<p>&nbsp;</p>\n";
echo "<p><font face=\"Times New Roman\" color=\"#000000\" size=\"5\">Глава 2</font></p>\n";
echo "<p><font face=\"Times New Roman\" color=\"#000000\" size=\"5\">Переменные\n";
echo "и типы данных</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Типы данных составляют основу любого\n";
echo "языка программирования и являются\n";
echo "средством, с помощью которого программист\n";
echo "представляет разные типы информации. В РНР\n";
echo "поддерживаются шесть основных типов данных:</p>\n";
echo "<ul>\n";
echo "  <li>целые числа;</li>\n";
echo "  <li>вещественные числа;</li>\n";
echo "  <li>строки;</li>\n";
echo "  <li>массивы;</li>\n";
echo "  <li>объекты;</li>\n";
echo "  <li>логические величины.</li>\n";
echo "</ul>\n";
echo "<p>Одним из столпов любого языка\n";
echo "программирования является поддержка\n";
echo "числовых данных. В РНР поддерживаются как\n";
echo "целые, так и вещественные числа (двойной\n";
echo "точности). Разные числовые форматы подробно\n";
echo "описываются в следующих разделах.</p>\n";
echo "</font><b>\n";
echo "<p><font face=\"Times New Roman\"><A NAME=\"b\"></A><font face=\"Times New Roman\" color=\"#000000\" size=\"4\">Целые\n";
echo "числа</font></b></font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Целое число не имеет дробной части и\n";
echo "представляется последовательностью из\n";
echo "одной или нескольких цифр. Примеры целых\n";
echo "чисел:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">5</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">591</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">52</font></p>\n";
echo "<b>\n";
echo "<p><font face=\"Times New Roman\"><A NAME=\"c\"></A><font face=\"Times New Roman\" color=\"#000000\" size=\"4\">Восьмеричная и шестнадцатеричная запись</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В РНР поддерживается запись целых чисел в\n";
echo "восьмеричной (по основанию 8) и шестнадцатеричной\n";
echo "(по основанию 16) системах\n";
echo "счисления. Восьмеричные числа начинаются с\n";
echo "цифры 0, после которой следует серия цифр от\n";
echo "0 до 7. Примеры:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">0422</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">0534</font><font FACE=\"Times New Roman\" SIZE=\"1\" COLOR=\"#000000\"></p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Шестнадцатеричные целые числа имеют\n";
echo "префикс 0х или 0Х и могут состоять из цифр от\n";
echo "0 до 9 и букв от а (А) до f (F). Примеры:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">0x3FF</font></p>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">0x22abc</font></p>\n";
echo "<b>\n";
echo "<p><font face=\"Times New Roman\"><A NAME=\"d\"></A><font face=\"Times New Roman\" color=\"#000000\" size=\"4\">Вещественные числа</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Вещественные числа (числа с плавающей\n";
echo "точкой) отличаются от целых наличием\n";
echo "дробной части. Они используются для\n";
echo "представления значений, требующих\n";
echo "повышенной точности, — например,\n";
echo "температур или денежных величин. В РНР\n";
echo "поддерживаются два вещественных формата:\n";
echo "стандартная и научная (экспоненциальная)\n";
echo "запись.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"e\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Стандартная запись</font></p>\n";
echo "<i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Стандартная запись </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">удобна\n";
echo "для представления типичных вещественных\n";
echo "чисел — скажем, денежных величин. Примеры:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">12.45</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">98.6</font></p>\n";
echo "<p><A NAME=\"f\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Научная запись</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Научная запись лучше подходит для\n";
echo "представления очень больших и очень малых\n";
echo "чисел — скажем, межпланетных расстояний\n";
echo "или размеров атомов. Примеры:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">Зе8</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">5.9736е24</font></p>\n";
echo "<b>\n";
echo "<p><font face=\"Times New Roman\"><A NAME=\"g\"></A><font face=\"Times New Roman\" color=\"#000000\" size=\"4\">Строковые значения</font></font></p>\n";
echo "</b><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Строкой </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">(string)\n";
echo "называется последовательность символов,\n";
echo "которая рассматривается как единое целое,\n";
echo "но при этом обеспечивает доступ к отдельным\n";
echo "символам. Примеры строк:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>thesaurus</p>\n";
echo "<p>49ers</p>\n";
echo "<p>abc</p>\n";
echo "<p>&amp;%/$#</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Обратите внимание: в РНР не\n";
echo "поддерживается символьный тип данных.\n";
echo "Строковый тип может рассматриваться как\n";
echo "единое представление для\n";
echo "последовательностей, состоящих из одного\n";
echo "или нескольких символов.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"h\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Строковое присваивание</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Строки делятся на две категории в\n";
echo "зависимости от типа ограничителя — они\n";
echo "могут ограничиваться парой кавычек (&quot;\n";
echo "&quot;) или апострофов (' '). Между этими\n";
echo "категориями существуют два принципиальных\n";
echo "различия. Во-первых, имена переменных в строках, заключенных в кавычки,\n";
echo "заменяются соответствующими значениями, а\n";
echo "строки в апострофах интерпретируются\n";
echo "буквально, даже если в них присутствуют\n";
echo "имена переменных,</p>\n";
echo "<p>Два следующих объявления дают одинаковый\n";
echo "результат:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$food = &quot;meatloaf&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$food = 'meatloaf';</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Однако результаты следующих объявлений\n";
echo "сильно различаются:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$sentence = &quot;My favorite food is $food&quot;;</p>\n";
echo "<p>$sentence2 = 'My favorite\n";
echo "food is $food';</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Переменной $sentence присваивается строка</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">My favorite food is\n";
echo "meatloaf.</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Обратите внимание: переменная $food\n";
echo "автоматически интерпретируется. С другой\n";
echo "стороны, переменной $sentence2 присваивается\n";
echo "строка</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>My favorite food is $food.</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В отличие от переменной $sentence, в $sentence2\n";
echo "осталась не интерпретированная переменная\n";
echo "$food. Различия обусловлены использованием\n";
echo "кавычек и апострофов при присваивании\n";
echo "переменным $sentence и $sentence2.</p>\n";
echo "<p>Прежде чем рассматривать второе\n";
echo "фундаментальное различие между строками,\n";
echo "заключенными в апострофы и в кавычки,\n";
echo "необходимо познакомиться со служебными\n";
echo "символами, используемыми в строках РНР. В\n";
echo "РНР, как и в большинстве современных языков\n";
echo "программирования, строки могут содержать\n";
echo "служебные символы (например, символы\n";
echo "табуляции или новой строки), перечисленные\n";
echo "в табл. 2.1.</p>\n";
echo "</font><b>\n";
echo "<p><font face=\"Times New Roman\"><font color=\"#000000\" size=\"3\">Таблица\n";
echo "2.1.<i> </i> </font></font></b><i><font color=\"#000000\" size=\"3\">Служебные\n";
echo "символы в строках</font></i></p>\n";
echo "<table border=\"1\" width=\"450\">\n";
echo "  <tr>\n";
echo "    <td width=\"127\">\n";
echo "<b>\n";
echo "<font face=\"Times New Roman\" color=\"#000000\" size=\"3\">Последовательность</font> </b></td>\n";
echo "    <td width=\"333\">\n";
echo "      <p align=\"center\"><b><font face=\"Times New Roman\" size=\"3\" COLOR=\"#000000\">Смысл</font> </b></p>\n";
echo "    </td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">\n</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Новая строка</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">&nbsp;\r</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Возврат курсора</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">&nbsp;\t</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Горизонтальная табуляция</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\">\\</td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Обратная косая черта</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">&nbsp; \$</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Знак доллара</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">\&quot;</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Кавычка</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">\[0-7]{1,3}</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Восьмеричная запись числа (в виде\n";
echo "регулярного выражения)</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"127\" align=\"center\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">&nbsp;\x[0-9A-Fa-f]{l,2}</font></td>\n";
echo "    <td width=\"333\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Шестнадцатиричная запись числа (в виде\n";
echo "регулярного выражения)</font></td>\n";
echo "  </tr>\n";
echo "</table>\n";
echo "<font FACE=\"Arial\" SIZE=\"1\" COLOR=\"#000000\">\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Второе принципиальное различие\n";
echo "заключается в том, что в строках,\n";
echo "заключенных в кавычки, распознаются все\n";
echo "существующие служебные символы, а в строках,\n";
echo "заключенных в апострофы, — только\n";
echo "служебные символы «\\» и «\». Следующий\n";
echo "пример наглядно демонстрирует различия\n";
echo "между присваиванием строк, заключенных в\n";
echo "кавычки и апострофы:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$double_list = &quot;item1\nitem2\nitem2&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$single_list = 'item1\nitem2\nitem2';</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Если вывести обе строки в браузере,\n";
echo "окажется, что строка в кавычках содержит\n";
echo "внутренние символы новой строки, а в строке\n";
echo "в апострофах последовательность \n\n";
echo "выводится как обычные символы. Хотя многие\n";
echo "служебные символы в браузерах\n";
echo "</font> <font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "несущественны, при форматировании для\n";
echo "других условий они играют очень важную роль.\n";
echo "Помните об этом, выбирая между кавычками и\n";
echo "апострофами, и вам удастся избежать многих\n";
echo "неожиданностей.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"i\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Синтаксис встроенной документации</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Второй вариант синтаксиса ограничения\n";
echo "строк, представленный в HTML4, называется </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">встроенной\n";
echo "документацией </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">(here\n";
echo "doc). В этом варианте синтаксиса строка\n";
echo "начинается с символов &lt;&lt;&lt;, за которыми\n";
echo "следует некоторый идентификатор по вашему\n";
echo "выбору, затем строка, присваиваемая\n";
echo "переменной. Конструкция заканчивается\n";
echo "вторым экземпляром того же идентификатора.\n";
echo "Пример:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$paragraph = &lt;&lt;&lt;DELIM</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">This is a string that</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">Will be interpreted\n";
echo "exactly</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">As it is written in the</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">variable assignment,</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">DELIM;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Выбранный идентификатор не должен\n";
echo "присутствовать в присваиваемой строке.\n";
echo "Более того, первый символ завершающего\n";
echo "идентификатора </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">должен\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">находиться\n";
echo "в первом столбце строки, завершающей\n";
echo "конструкцию.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"j\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Обращение к отдельным символам строк</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>К отдельным символам строки можно\n";
echo "обращаться как к элементам массива с\n";
echo "последовательной нумерацией (см. следующий\n";
echo "раздел). Пример:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$sequence_number = &quot;04efgh&quot;;</p>\n";
echo "<p>$letter = Ssequence_number[4];</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Переменной $ letter будет присвоено значение <i>g.\n";
echo "</i>Как вы узнаете из следующего раздела, в\n";
echo "РНР нумерация элементов массивов\n";
echo "начинается с 0. Соответственно, выражение\n";
echo "$sequence_number[l] будет равно 4.</p>\n";
echo "</font><b>\n";
echo "<p><font face=\"Times New Roman\"><A NAME=\"k\"></A><font color=\"#000000\" size=\"4\">Массивы</font></font></p>\n";
echo "</b><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Массив </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">представляет\n";
echo "собой список однотипных элементов.\n";
echo "Существует два типа массивов,\n";
echo "различающиеся по способу идентификации\n";
echo "элементов. В массивах первого типа элемент\n";
echo "определяется индексом в\n";
echo "последовательности. Массивы второго типа\n";
echo "имеют ассоциативную природу, и для\n";
echo "обращения к элементам используются ключи,\n";
echo "логически связанные со значениями. Впрочем,\n";
echo "на практике операции с массивами обоих\n";
echo "типов выполняются сходным образом. По\n";
echo "размерности массивы делятся на одномерные\n";
echo "и многомерные.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"l\"></A><font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Одномерные индексируемые массивы</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>При обращении к элементам одномерных\n";
echo "индексируемых массивов используется\n";
echo "целочисленный индекс, определяющий позицию\n";
echo "заданного элемента.</p>\n";
echo "<p>Обобщенный синтаксис элементов\n";
echo "одномерного массива:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$имя[индекс1];</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Одномерные массивы создаются следующим\n";
echo "образом:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$meat[0] = &quot;chicken&quot;;</p>\n";
echo "<p>$meat[l] = &quot;steak&quot;;</p>\n";
echo "<p>$meat[2] = &quot;turkey&quot;;</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>При выполнении следующей команды:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">print $meat[1]:</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>в браузере выводится строка</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">steak</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>При создании массивов также можно\n";
echo "воспользоваться функцией array (). Массив $meat\n";
echo "из предыдущего примера создается командой</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$meat = аrrау(&quot;chicken&quot;, &quot;steak&quot;, &quot;turkey&quot;);</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Приведенная выше команда pri nt приводит к\n";
echo "тому же результату — выводу строки steak.</p>\n";
echo "<p>Чтобы включить новый элемент в конец\n";
echo "массива, можно просто присвоить значение\n";
echo "переменной массива без указания индекса.\n";
echo "Следовательно, массив $meat можно создать еще\n";
echo "одним способом:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Smeat[] = &quot;chicken&quot;;</p>\n";
echo "<p>$meat[] = &quot;steak&quot;;</p>\n";
echo "<p>Smeat[] = &quot;turkey&quot;;</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"m\"></A><font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Одномерные ассоциативные массивы</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Ассоциативные массивы особенно удобны в\n";
echo "ситуациях, когда элементы массива удобнее\n";
echo "связывать со словами, а не с числами.</p>\n";
echo "<p>Предположим, вы хотите сохранить в\n";
echo "массиве лучшие сочетания вин и блюд. Проще\n";
echo "всего было бы хранить в массиве пары «ключ/значение»\n";
echo "— например, присвоить сорт вина названию\n";
echo "блюда. Самым разумным решением будет\n";
echo "использование ассоциативного массива:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">Spairings[&quot;zinfandel&quot;]\n";
echo "= &quot;Broiled Veal Chops&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;merlot&quot;]\n";
echo "= &quot;Baked Ham&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;sauvignon&quot;] = &quot;Prime Rib&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;sauternes&quot;] = &quot;Roasted Salmon&quot;;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Ассоциативный массив заметно экономит\n";
echo "время и объем программного кода,\n";
echo "необходимого для вывода определенных\n";
echo "элементов массива. Допустим, вы хотите\n";
echo "узнать, с каким блюдом лучше всего идет «Мерло».\n";
echo "Нужная информация выводится простой\n";
echo "ссылкой на элемент массива $pairings: print $pairings[&quot;merlot&quot;];\n";
echo "// Выводится строка &quot;Baked Ham&quot;\n";
echo "Ассоциативные массивы также можно\n";
echo "создавать функцией РНР аггау():</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Spairings = аrrау(</p>\n";
echo "<p>zinfandel =&gt; &quot;Broiled Veal Chops&quot;,</p>\n";
echo "<p>merlot =&gt; &quot;Baked Ham&quot;,</p>\n";
echo "<p>sauvignon =&gt; &quot;Prime Rib&quot;,</p>\n";
echo "<p>sauternes =&gt; &quot;Roasted Salmon&quot;);</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Отличается только способ создания\n";
echo "массива pairings, а функциональные возможности\n";
echo "остаются без изменений.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"n\"></A><font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Многомерные индексируемые массивы</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Многомерные индексируемые массивы\n";
echo "работают практически так же, как и их\n";
echo "одномерные прототипы, однако элементы в них\n";
echo "определяются несколькими индексами вместо\n";
echo "одного. Теоретически размерность\n";
echo "индексируемого массива не ограничивается,\n";
echo "хотя в большинстве приложений практически\n";
echo "не встречаются массивы с размерностью выше\n";
echo "3.</p>\n";
echo "<p>Обобщенный синтаксис элементов\n";
echo "многомерного массива:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$имя[индекс1][индекс2]..[индексN];</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Пример ссылки на элемент двухмерного\n";
echo "индексируемого массива:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$position = $chess_board[5][4];</font></p>\n";
echo "<p><A NAME=\"o\"></A><font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Многомерные ассоциативные массивы</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Многомерные ассоциативные массивы также\n";
echo "существуют в РНР (и приносят определенную\n";
echo "пользу). Допустим, в массиве $раirings из\n";
echo "предыдущего примера должна храниться\n";
echo "информация не только о сорте, но и о\n";
echo "производителе вина. Это можно сделать\n";
echo "следующим образом:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;Martinelli&quot;][&quot;zinfandel&quot;] = &quot;Broiled Veal\n";
echo "Chops&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;Beringer&quot;][&quot;merlot&quot;] = &quot;Baked\n";
echo "Ham&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;Jarvis&quot;][&quot;sauvignon&quot;] = &quot;Prime\n";
echo "Rib&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$pairings[&quot;Climens&quot;][&quot;sauternes&quot;] = &quot;Roasted\n";
echo "Salmon&quot;;</font></p>\n";
echo "<p><font size=\"4\"><A NAME=\"p\"></A><font color=\"#000000\" face=\"Times New Roman\" size=\"4\">Смешанное индексирование</font></font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В многомерных массивах допускается\n";
echo "смешанное индексирование (числовое и\n";
echo "ассоциативное). Допустим, вы хотите\n";
echo "расширить модель одномерного\n";
echo "ассоциативного массива для хранения\n";
echo "информации об игроках первого и второго\n";
echo "состава футбольной команды. Решение может\n";
echo "выглядеть следующим образом:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$Buckeyes[&quot;quarterback&quot;] [1] = &quot;Bellisari&quot;;</p>\n";
echo "<p>$Buckeyes[&quot;quarterback&quot;] [2] = &quot;Moherman&quot;:</p>\n";
echo "<p>$Buckeyes[&quot;quarterback&quot;] [3] = &quot;Wiley&quot;;</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В РНР существует множество функций для\n";
echo "создания массивов и операций с ними — эта\n";
echo "тема настолько обширна, что заслуживает\n";
echo "отдельной главы. Работа с массивами в РНР\n";
echo "подробно описана в главе 13.</p>\n";
echo "</font><b>\n";
echo "<p><A NAME=\"q\"></A><font size=\"4\">Объекты</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>К пятому типу данных РНР относятся\n";
echo "объекты. </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">Объект\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">представляет\n";
echo "собой переменную, экземпляр которой\n";
echo "создается по специальному шаблону,\n";
echo "называемому классом. Концепции объектов и\n";
echo "классов являются неотъемлемой частью\n";
echo "парадигмы объектно-ориентированного\n";
echo "программирования (ООП).</p>\n";
echo "<p>В отличие от других типов данных,\n";
echo "поддерживаемых в языке РНР, объекты должны\n";
echo "объявляться явно. Необходимо понимать, что\n";
echo "объект — всего лишь конкретный экземпляр\n";
echo "класса, используемого в качестве шаблона\n";
echo "для создания объектов с конкретными\n";
echo "характеристиками и функциональными\n";
echo "возможностями. Следовательно, объявление\n";
echo "класса должно предшествовать объявлению\n";
echo "объектов, создаваемых на их основе. Пример\n";
echo "объявления класса и последующего создания\n";
echo "объектов на его основе:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "class appliance {\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "var power:\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "function set_power($on_off) {\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$this-&gt;power = $on_off;&nbsp;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "}\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\">}</font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<p><font face=\"Courier New\">...</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$blender = new appliance;\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Определение класса задает атрибуты и\n";
echo "функции, связанные с некоторой структурой\n";
echo "данных — в данном примере это структура с\n";
echo "именем appliance (устройство). У этой структуры\n";
echo "имеется всего один атрибут power (мощность).\n";
echo "Для изменения этого атрибута создается\n";
echo "метод set_power.</p>\n";
echo "<p>Помните: определение класса — всего лишь\n";
echo "шаблон, и выполнять операции с ним в\n";
echo "программе невозможно; сначала нужно\n";
echo "создать объекты на основе этого шаблона.\n";
echo "Объекты создаются при помощи ключевого\n";
echo "слова new. Например, в приведенном выше\n";
echo "фрагменте создается объект $blender класса\n";
echo "appliance.</p>\n";
echo "<p>После создания объекта $blender можно задать\n";
echo "его мощность при помощи метода</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">set_power: $blender-&gt;set_power(&quot;on&quot;);</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Объектно-ориентированное\n";
echo "программирование занимает столь важное\n";
echo "место в современных стандартах\n";
echo "программирования, что его применение в РНР\n";
echo "заслуживает отдельной главы. Реализация\n";
echo "ООП в РНР описана в главе 6.</p>\n";
echo "</font><b>\n";
echo "<p><A NAME=\"r\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Логические величины (истина/ложь)</font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Логический тип данных принимает всего два\n";
echo "значения: истинное (true) и ложное (false).\n";
echo "Логические величины создаются двумя\n";
echo "способами: при проверке условий и в виде\n";
echo "значений переменных. Обе ситуации\n";
echo "достаточно просты.</p>\n";
echo "<p>Сравнения существуют в нескольких формах.\n";
echo "Чаще всего они встречаются при\n";
echo "использовании оператора = в условной\n";
echo "команде if. Пример:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">if ($sum == 40) :</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">...</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Результатом проверки является либо\n";
echo "истина, либо ложь: переменная $sum либо равна\n";
echo "40, либо не равна. Если переменная $sum равна 40,\n";
echo "проверка дает истинный результат. В\n";
echo "противном случае результат равен false.</p>\n";
echo "<p>Логические величины также могут\n";
echo "определяться явным присваиванием\n";
echo "переменной истинного или ложного значения.\n";
echo "Пример:</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$flag = TRUE;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">if ($flag </font></font><font color=\"#000000\" face=\"Courier New\" size=\"3\">==</font>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font color=\"#000000\" face=\"Courier New\" size=\"3\"> TRUE) :</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;The flag is true!&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">else :</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;The flag is false!&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">endif;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Если переменная $flag истинна, выводится\n";
echo "первое сообщение, а если ложна — второе\n";
echo "сообщение.</p>\n";
echo "<p>Возможен и другой вариант —\n";
echo "представление истинных и ложных логических\n";
echo "величин в виде значений 1 и 0 соответственно.\n";
echo "В этом случае предыдущий пример выглядит\n";
echo "так:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$flag = 1;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">if ($flag == TRUE) ;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;The flag is true!&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">print &quot;The flag is false!&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">endif;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Наконец, существует еще один способ:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$flag = TRUE:\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "// При выполнении этой команды косвенно&nbsp;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo " //\n";
echo "проверяется условие &quot;if ($flag == TRUE)&quot;\n";
echo "</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">if ($flag)\n";
echo ":</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "print &quot;The flag is true!&quot;;\n";
echo "</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">else :</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "print &quot;The flag is false!&quot;;\n";
echo "</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">endif:</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"4\"><A NAME=\"s\"></A><font color=\"#000000\">Идентификаторы</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Общий термин </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">идентификатор\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">применяется\n";
echo "к переменным, функциям и другим объектам,\n";
echo "определяемым пользователем.\n";
echo "Идентификаторы РНР должны удовлетворять\n";
echo "нескольким условиям:</p>\n";
echo "<p>Идентификатор состоит из одного или\n";
echo "нескольких символов и начинается с буквы\n";
echo "или символа подчеркивания. Идентификатор\n";
echo "может содержать только буквы, цифры,\n";
echo "символы подчеркивания и другие ASCII-символы\n";
echo "с кодами от 127 до 255. Примеры:</p>\n";
echo "</font>\n";
echo "<table border=\"1\">\n";
echo "  <tr>\n";
echo "    <td width=\"250\"><b><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Допустимые\n";
echo "      идентификаторы</font></b></td>\n";
echo "    <td width=\"250\">\n";
echo "      <p align=\"left\"><b><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Недопустимые\n";
echo "      идентификаторы</font></b></td>\n";
echo "  </tr>\n";
echo "  <font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "  <tr>\n";
echo "    <td width=\"114\">\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">my_function</font></p>\n";
echo "    </td>\n";
echo "    <td width=\"178\">\n";
echo "      <p align=\"left\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">This&amp;that</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"114\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Size</font></td>\n";
echo "    <td width=\"178\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">!counter</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"114\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">_someword</font></td>\n";
echo "    <td width=\"178\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">4ward</font></td>\n";
echo "  </tr>\n";
echo "  </table>\n";
echo "</font><b><font FACE=\"Arial\" SIZE=\"1\" COLOR=\"#000000\">\n";
echo "</font></b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В идентификаторах учитывается регистр\n";
echo "символов. Следовательно, переменная с\n";
echo "именем $recipe отличается от переменных с\n";
echo "именами $Recipe, $rEciPe и $recipE.</p>\n";
echo "<p>Длина идентификаторов не ограничивается.\n";
echo "Это удобно, поскольку программист может\n";
echo "точно описать смысл идентификатора в его\n";
echo "имени.</p>\n";
echo "<p>Идентификатор не может совпадать с каким-либо\n";
echo "из стандартных ключевых слов РНР.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\"><A NAME=\"t\"></A><font color=\"#000000\">Переменные</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В примерах, приведенных выше, я попутно\n";
echo "показал, как происходит присваивание и\n";
echo "изменение значений переменных. И все же\n";
echo "стоит четко сформулировать правила\n";
echo "объявления переменных и выполнения\n";
echo "операций с ними. Ниже приводится подробное\n";
echo "описание этих правил.</p>\n";
echo "</font>\n";
echo "</font>\n";
echo "<p><A NAME=\"u\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Объявление переменных</font></p>\n";
echo "<font face=\"Times New Roman\"><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Переменная </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">представляет\n";
echo "собой именованную область памяти,\n";
echo "содержащую данные, с которыми можно\n";
echo "выполнять операции во время выполнения\n";
echo "программы.</p>\n";
echo "<p>Имена переменных всегда начинаются со\n";
echo "знака доллара, $. Ниже приведены примеры\n";
echo "допустимых имен переменных:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$соlоr</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$operating_system</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$_some_variable</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$model</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Имена переменных должны соответствовать\n";
echo "тем же условиям, что и идентификаторы.\n";
echo "Другими словами, имя переменной начинается\n";
echo "с буквы или символа подчеркивания и состоит\n";
echo "из букв, символов подчеркивания, цифр или\n";
echo "других ASCII-символов в интервале от 127 до 255.</p>\n";
echo "<p>Следует заметить, что переменные в РНР,\n";
echo "как и в языке Perl, не требуют специального\n";
echo "объявления. Вместо этого переменная\n";
echo "объявляется при первом ее использовании в\n";
echo "программе. Более того, тип переменной\n";
echo "косвенно определяется по типу хранящихся в\n";
echo "ней данных. Рассмотрим следующий пример:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$sentence = &quot;This is a sentence.&quot;; // $sentence\n";
echo "интерпретируется как строка</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$price = 42.99: // $price интерпретируется как\n";
echo "вещественное число</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$weight = 185; // $weight интерпретируется как целое\n";
echo "число</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Переменные могут объявляться в любой\n";
echo "точке сценария РНР, однако от расположения\n";
echo "объявления зависит то, откуда можно\n";
echo "обращаться к данной переменной.</p>\n";
echo "</font>\n";
echo "<p><A NAME=\"v\"></A><font color=\"#000000\" size=\"4\">Область видимости переменных</font></p>\n";
echo "<i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Область видимости </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">(scope)\n";
echo "определяется как область доступности\n";
echo "переменной в той программе, в которой она\n";
echo "была объявлена. В зависимости от области\n";
echo "видимости переменные РНР делятся на четыре\n";
echo "типа:</p>\n";
echo "</font>\n";
echo "<ul>\n";
echo "  <li>&nbsp;<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">локальные\n";
echo "    переменные;</li>\n";
echo "    <li>параметры функций;</li>\n";
echo "    <li>глобальные переменные;</li>\n";
echo "    <li>статические переменные.</li>\n";
echo "  </ul>\n";
echo "</font><b>\n";
echo "<p></b></font><b><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Локальные переменные</font></p>\n";
echo "</b><font face=\"Times New Roman\"><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Переменная, объявленная внутри функции,\n";
echo "считается </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">локальной</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">;<i>\n";
echo "</i>другими словами, на нее можно ссылаться\n";
echo "только в этой функции. При любом\n";
echo "присваивании вне функции будет\n";
echo "использоваться совершенно другая\n";
echo "переменная, которая не имеет ничего общего (кроме\n";
echo "имени) с переменной, объявленной внутри\n";
echo "функции. При выходе из функции, в которой\n";
echo "была объявлена локальная переменная, эта\n";
echo "переменная и ее значение уничтожаются.</p>\n";
echo "<p>Основное достоинство локальных\n";
echo "переменных — отсутствие непредвиденных\n";
echo "побочных эффектов, связанных со случайной\n";
echo "или намеренной модификацией глобальной\n";
echo "переменной. Рассмотрим следующий пример:</p>\n";
echo "</font>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$х = 4;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "function assignx () {\n";
echo "</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">$х = 0;</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">print &quot;\$x inside function is $x. &lt;br&gt;&quot;;</font></p>\n";
echo "<p><font size=\"3\" face=\"Courier New\">}</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "assignx();\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "print &quot;\$x outside of function is $x. &lt;br&gt;&quot;;</font></p>\n";
echo "<p>\n";
echo "<font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "При выполнении этого фрагмента выводится\n";
echo "следующий результат:\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "$х inside function is 0.\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "$х outside of function is 4.\n";
echo "</font></p>\n";
echo "<font face=\"Times New Roman\"><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Как видите, программа выводит два разных\n";
echo "значения переменной $х. Дело в том, что\n";
echo "переменная $х внутри функции assignx имеет\n";
echo "локальную природу, и изменение ее значения\n";
echo "никак не отражается на значении,\n";
echo "существующем за пределами этой функции.\n";
echo "Справедливо и обратное — модификация $х за\n";
echo "пределами функции никак не отражается на\n";
echo "локальных переменных функции assignx().</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Параметры функций</font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В РНР, как и во многих других языках\n";
echo "программирования, любые параметры,\n";
echo "передаваемые функции при вызове, должны\n";
echo "быть объявлены в заголовке функции. Хотя\n";
echo "параметрам присваиваются аргументы,\n";
echo "переданные извне, после выхода из функции\n";
echo "они становятся недоступными.</p>\n";
echo "<p>Параметры объявляются в круглых скобках\n";
echo "после имени функции. Объявление параметров\n";
echo "практически не отличается от объявления\n";
echo "типичной переменной:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">// Функция умножает переданное значение на\n";
echo "10 и возвращает результат</font></p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">function x10 ($value) {</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$value = $value * 10;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">return $value;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">}</font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Хотя вы можете обращаться к параметрам в\n";
echo "той функции, в которой они были объявлены, и\n";
echo "выполнять с ними необходимые операции,\n";
echo "после завершения функции параметры\n";
echo "уничтожаются.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">Глобальные переменные</font></p>\n";
echo "</b><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Глобальные переменные, </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">в\n";
echo "отличие от локальных, доступны в любой\n";
echo "точке программы. Но чтобы изменить значение\n";
echo "глобальной переменной, необходимо\n";
echo "специально объявить ее как глобальную в\n";
echo "соответствующей функции. Для этого перед\n";
echo "именем переменной ставится ключевое слово\n";
echo "GLOBAL. Пример:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$somevar = 15;</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "function addit() {\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "GLOBAL $somevar;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "$somevar++;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "print &quot;Somevar is\n";
echo "$somevar&quot;;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "}\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "addit();\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Будет выведено значение $somevar, равное 16.\n";
echo "Допустим, вы забыли включить следующую\n";
echo "строку:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">GLOBAL </font></font>\n";
echo "<font face=\"Courier New\" color=\"#000000\" size=\"3\">$</font><font face=\"Times New Roman\"><font face=\"Courier New\" color=\"#000000\" size=\"3\">somevar;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В этом случае $somevar будет присвоено\n";
echo "значение 1, поскольку эта переменная будет\n";
echo "считаться локальной по отношению к функции\n";
echo "addit( ). Локальная переменная по умолчанию\n";
echo "инициализируется 0, а затем к ней\n";
echo "прибавляется 1; таким образом, будет\n";
echo "выведено значение 1.</p>\n";
echo "<p>Альтернативный способ объявления\n";
echo "глобальных переменных связан с\n";
echo "использованием массива РНР $GLOBALS( ). Давайте\n";
echo "вернемся к предыдущему примеру и\n";
echo "воспользуемся этим массивом для объявления\n";
echo "глобальной переменной $somevar: $somevar = 15;</p>\n";
echo "</font></font>\n";
echo "<p><font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "function addit() {\n";
echo "</font>\n";
echo "</p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "$GLOBALS[&quot;somevar&quot;];\n";
echo "</font>\n";
echo "</p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" COLOR=\"#000000\">\n";
echo "$somevar++;\n";
echo "</font>\n";
echo "</p>\n";
echo "<p><font size=\"3\" face=\"Courier New\">}</font></p>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">addit();</font></p>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">print &quot;Somevar is $somevar&quot;;</font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Каким бы способом ни обеспечивалась\n";
echo "глобальная видимость переменной, помните,\n";
echo "что неосторожное использование глобальных\n";
echo "переменных нередко приводит к неожиданным\n";
echo "результатам, причиняющим немало хлопот\n";
echo "программистам. Таким образом, хотя\n";
echo "глобальные переменные очень удобны, при их\n";
echo "использовании необходима умеренность.</p>\n";
echo "</font><b>\n";
echo "<p>\n";
echo "</b></font><b>\n";
echo "<A NAME=\"w\"></A><font color=\"#000000\" size=\"4\" face=\"Times New Roman\">Статические переменные</font></p>\n";
echo "</b><font face=\"Times New Roman\"><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Последний тип видимости переменных\n";
echo "называется </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">статическим.\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">В\n";
echo "отличие от переменных, объявленных\n";
echo "параметрами и уничтожаемых при выходе из\n";
echo "функции, статическая переменная сохраняет\n";
echo "свое значение при повторном вызове. Для\n";
echo "объявления статической переменной перед ее\n";
echo "именем ставится ключевое слово STATIC:\n";
echo "</font></p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">STATIC $somevar;\n";
echo "</font></p>\n";
echo "<p>\n";
echo "<font face=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "Рассмотрим пример:\n";
echo "</font>\n";
echo "</p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "function keep_track() {\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "STATIC $count = 0;\n";
echo "</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">$count++;</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">print $count;</font></p>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">print &quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "}\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "keep_track();\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "keep_track();\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "keep_track();\n";
echo "</font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Как будут выглядеть результаты работы\n";
echo "этого сценария? Если бы переменная $count </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">не\n";
echo "была </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">объявлена\n";
echo "статической (то есть являлась локальной),\n";
echo "результат выглядел бы так:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">1\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Но поскольку переменная $count является\n";
echo "статической, при каждом вызове функции\n";
echo "будет сохраняться ее предыдущее значение,\n";
echo "поэтому результат будет таким:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">1\n";
echo "</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">2</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">3</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Статические переменные особенно удобны\n";
echo "при написании </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">рекурсивных\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">функций\n";
echo "— особого класса функций, которые\n";
echo "многократно вызывают сами себя до\n";
echo "выполнения некоторого условия. Рекурсивные\n";
echo "функции рассматриваются в главе 4.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\"><A NAME=\"x\"></A><font color=\"#000000\">Переключение типов</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Иногда бывает удобно использовать\n";
echo "переменные способами, не предусмотренными\n";
echo "при их создании. Допустим, вам захочется\n";
echo "прибавить строковое значение &quot;15&quot; к\n";
echo "целому числу 12. К счастью, тип переменных\n";
echo "РНР может изменяться и без использования\n";
echo "механизма явного преобразования. Этот\n";
echo "процесс, независимо от того, выполняется ли\n";
echo "он прямо или косвенно, называется </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">переключением\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">(juggling) </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">типов.\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">Лучше\n";
echo "всего продемонстрировать сказанное на\n";
echo "конкретных примерах.</p>\n";
echo "<p>Предположим, вы суммируете две величины —\n";
echo "строку и целое число. Как вы думаете, что при\n";
echo "этом произойдет? Результат зависит от\n";
echo "содержимого строки. Например, при\n";
echo "суммировании целого числа со строковым\n";
echo "представлением числа будет получено целое\n";
echo "число:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$variablel = 1;</p>\n";
echo "<p>$variable2 = &quot;1&quot;;</p>\n";
echo "<p>$variable3 = $variablel + $variable2;</p>\n";
echo "<p>// $variable3 присваивается 4.</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Другой пример переключения типов —\n";
echo "суммирование целого числа с вещественным.\n";
echo "При этом целое число преобразуется к\n";
echo "вещественному типу, чтобы избежать потери\n";
echo "точности:</p>\n";
echo "</font></font><p><font face=\"Courier New\" size=\"3\" color=\"#000000\">$</font><font face=\"Times New Roman\"><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">variablel = 3;</p>\n";
echo "<p>$variable2 = 5.4;</p>\n";
echo "<p>$variable3 = $variablel + $variable2;</p>\n";
echo "</font></font><p><font face=\"Courier New\"><font SIZE=\"3\" COLOR=\"#000000\">// $v</font></font><font face=\"Times New Roman\"><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">ariablel интерпретируется как\n";
echo "вещественное число.</p>\n";
echo "<p>// и $variable3 присваивается 8.4.</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Следует упомянуть о некоторых\n";
echo "малоизвестных особенностях переключения\n";
echo "типов. Что произойдет при попытке\n";
echo "суммирования целого числа и строки, </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">содержащей</font></i>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">целое число, но не являющейся строковым\n";
echo "представлением? Рассмотрим следующий\n";
echo "пример:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$variablel = 5;</p>\n";
echo "<p>$variable2 = &quot;100 bottles of beer on the wall&quot;;</p>\n";
echo "<p>$variable3 = ;variable1 + $variable2;</p>\n";
echo "<p>// $variable3 присваивается 105</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В результате переменной ;variable3\n";
echo "присваивается значение 105. Это происходит\n";
echo "из-за того, что лексический анализатор РНР\n";
echo "определяет тип по началу строки. Допустим,\n";
echo "мы привели переменную $variable2 к виду &quot;There are\n";
echo "100 bottles of beer on the wall&quot;. Поскольку алфавитные\n";
echo "символы трудно интерпретировать как целое\n";
echo "число, строка интерпретируется как 0, и\n";
echo "переменной $variable3 присваивается 5.</p>\n";
echo "<p>Хотя в большинстве случаев переключение\n";
echo "типов обеспечивает желаемый результат,\n";
echo "существует способ явного приведения\n";
echo "переменных к конкретному типу. Эта тема\n";
echo "рассматривается в следующем разделе.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\"><A NAME=\"y\"></A><font color=\"#000000\">Преобразование типов</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Явное приведение переменной к типу,\n";
echo "отличному от того, который изначально\n";
echo "предназначался для нее, называется </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">преобразованием\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">(casting)\n";
echo "типа. Изменение типа может быть как\n";
echo "временным, одноразовым, так и постоянным.</p>\n";
echo "<p>Чтобы временно привести переменную к\n";
echo "другому типу, достаточно воспользоваться\n";
echo "оператором преобразования типа — указать\n";
echo "нужный тип перед именем переменной в\n";
echo "круглых скобках (табл. 2.2).</p>\n";
echo "</font><b>\n";
echo "<p><font color=\"#000000\" size=\"3\">Таблица 2.2. </font></b><font color=\"#000000\" size=\"3\"><i>Операторы\n";
echo "преобразования типа переменных</i></font></p>\n";
echo "<table border=\"1\" width=\"405\">\n";
echo "  <tr>\n";
echo "    <td width=\"250\"><b><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Оператор преобразования типа</font></b></td>\n";
echo "    <td width=\"153\"><b><font color=\"#000000\" size=\"3\" face=\"Times New Roman\"> Новый тип</font></b></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"231\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">&nbsp;(int) или\n";
echo "      (integer)</font></td>\n";
echo "    <td width=\"150\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Целое\n";
echo "      число</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"231\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">(real),\n";
echo "      (double) или (float)</font></td>\n";
echo "    <td width=\"153\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Вещественное\n";
echo "      число</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"231\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">(string)</font></td>\n";
echo "    <td width=\"153\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Строка</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"231\"><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">(array)</font></td>\n";
echo "    <td width=\"160\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Массив</font></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "    <td width=\"231\"><font size=\"3\" face=\"Times New Roman\" COLOR=\"#000000\">(object)</font></td>\n";
echo "    <td width=\"153\"><font color=\"#000000\" size=\"3\" face=\"Times New Roman\">Объект</font></td>\n";
echo "  </tr>\n";
echo "</table>\n";
echo "<p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "Простой пример преобразования типов:\n";
echo "</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$variable1= 13; // $variable1 присваивается целое\n";
echo "число 13</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$variable2 = (double) $variable1; // $variable2\n";
echo "присваивается 13.0</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Хотя переменная $variable1 первоначально\n";
echo "содержала целое число 13, преобразование (double)\n";
echo "преобразует ее к вещественному типу (поэтому\n";
echo "число 13 превращается в 13.0). Полученное\n";
echo "значение присваивается переменной $variable2.</p>\n";
echo "<p>Из предыдущего раздела вы знаете, что при\n";
echo "суммировании целого числа с вещественным\n";
echo "получается вещественный результат. Однако\n";
echo "тип результата можно изменить посредством\n";
echo "явного преобразования типа:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$variablel = 4.0;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$variable2 = 5;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$variable3 = (int) $variable1 + $variable2; // $variable3 = 9</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Следует заметить, что преобразование\n";
echo "вещественного типа к целому всегда\n";
echo "сопровождается округлением:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$variablel = 14.7:</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$variable2 = (int) $varlable1; // $variable2 = 14:</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Строку или переменную другого типа также\n";
echo "можно преобразовать в элемент массива. В\n";
echo "этом случае преобразованная переменная\n";
echo "становится первым элементом массива:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$variable1 = 1114;</p>\n";
echo "<p>$array1 = (array) $varable1;</p>\n";
echo "<p>print $array1[0]; // Выводится значение 1114</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Наконец, любой тип данных можно\n";
echo "преобразовать в объект. Переменная\n";
echo "становится атрибутом объекта, и ей\n";
echo "присваивается имя scalar:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$model = &quot;Toyota&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">$new_obj = (object)</font> <font color=\"#000000\" size=\"3\" face=\"Courier New\">$model;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Ссылка на исходное строковое значение\n";
echo "выглядит так:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">print $new_obj-&gt;scalar;</font></p>\n";
echo "<b>\n";
echo "<p><font size=\"4\"><A NAME=\"z\"></A><font color=\"#000000\">Присваивание</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Вы уже знаете, как присвоить значение\n";
echo "переменной в сценарии РНР. Тем не менее,\n";
echo "некоторые тонкости, связанные с\n";
echo "присваиванием, стоит выделить особо.\n";
echo "Вероятно, вам хорошо знаком механизм\n";
echo "присваивания </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">по\n";
echo "значению, </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">при\n";
echo "котором именованной переменной\n";
echo "присваивается конкретное значение —\n";
echo "например, целое число 1 или строка &quot;ciao&quot;.\n";
echo "Однако существует и второй механизм —\n";
echo "присваивание </font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">по\n";
echo "ссылке, </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">также\n";
echo "открывающее перед программистами немало\n";
echo "полезных возможностей. В следующих\n";
echo "разделах оба механизма рассматриваются\n";
echo "более подробно.</p>\n";
echo "</font>\n";
echo "<p><font size=\"4\"><A NAME=\"aa\"></A><font color=\"#000000\">Присваивание по значению</font></font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Это самый распространенный способ\n";
echo "присваивания, при котором значение просто\n";
echo "заносится в область памяти, представленную\n";
echo "именем переменной. Примеры присваивания по\n";
echo "значению:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$vehicle = &quot;car&quot;;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "$amount =10.23;\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В результате выполнения этих двух команд\n";
echo "по адресу памяти, представленному именем\n";
echo "$vehicle, сохраняется строка &quot;car&quot;, а по\n";
echo "адресу, представленному именем $amount, —\n";
echo "значение 10.23.</p>\n";
echo "<p>Присваивание по значению также может\n";
echo "выполняться в результате выполнения\n";
echo "команды return в функциях:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">function simple () {</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">return 5;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">}</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$return_value = simple();</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Функция simple( ) всего лишь возвращает\n";
echo "значение 5, которое присваивается некоторой\n";
echo "переменной. В данном примере значение 5\n";
echo "будет присвоен</font><font SIZE=\"3\" COLOR=\"#000000\">о переменной\n";
echo "</font><font SIZE=\"3\" COLOR=\"#000000\">\n";
echo "$return_value.\n";
echo "</font>\n";
echo "</p>\n";
echo "<p><font size=\"4\"><A NAME=\"bb\"></A><font color=\"#000000\">Присваивание по ссылке</font></font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Другой способ заключается в присваивании\n";
echo "переменной ссылки на область памяти,\n";
echo "занимаемую другой переменной. Вместо\n";
echo "конкретного значения переменная-приемник\n";
echo "связывается с указателем (или ссылкой) на\n";
echo "область памяти, поэтому фактическое\n";
echo "копирование не выполняется.</p>\n";
echo "<p>Чтобы присвоить значение по ссылке,\n";
echo "укажите перед именем переменной-источника\n";
echo "символ &amp; (амперсанд):</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>$dessert = &quot;cake&quot;;</p>\n";
echo "<p>$dessert2 = $Sdessert;</p>\n";
echo "<p>$dessert2 = &quot;cookies&quot;;</p>\n";
echo "<p>print &quot;$dessert2 &lt;br&gt;&quot;; // Выводится строка\n";
echo "cookies</p>\n";
echo "<p>print Sdessert; // Снова выводится строка cookies</p>\n";
echo "</font>\n";
echo "<p><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">Как видно из приведенного фрагмента,\n";
echo "после связывания переменной $dessert2 со\n";
echo "ссылкой на область памяти, занимаемую\n";
echo "переменной $dessert, любые изменения $dessert2\n";
echo "приводят к автоматической модификации $dessert\n";
echo "(и всех остальных переменных, ссылающихся\n";
echo "на эту же область памяти).</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\"><A NAME=\"cc\"></A><font color=\"#000000\">Переменные в переменных</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В некоторых ситуациях бывает удобно\n";
echo "использовать переменные, содержимое\n";
echo "которых может динамически\n";
echo "интерпретироваться как имя другой\n";
echo "переменной. Рассмотрим типичный случай\n";
echo "присваивания:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$recipe = &quot;spaghetti&quot;;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Оказывается, строку &quot;spaghetti&quot; можно\n";
echo "интерпретировать как имя переменной — для\n";
echo "этого в команде присваивания перед именем\n";
echo "исходной переменной ставится второй знак $:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$$recipe = &quot;&amp; meatballs&quot;</font></font><font color=\"#000000\" face=\"Courier New\" size=\"3\">;</font></p>\n";
echo "<font face=\"Times New Roman\">\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Эта команда присваивает строку &quot;&amp;\n";
echo "meatballs&quot; переменной с именем &quot;spaghetti&quot;.\n";
echo "Следовательно, следующие две команды\n";
echo "выводят одинаковые результаты:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">print $recipe $spaghetti;</font></p>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">print $recipe $($recipe);</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В обоих случаях будет выведена строка &quot;spaghetti\n";
echo "&amp; meatballs&quot;.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\"><A NAME=\"dd\"></A><font color=\"#000000\">Стандартные переменные</font></font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В РНР поддерживается ряд стандартных\n";
echo "переменных, предоставляющих в распоряжение\n";
echo "программиста довольно подробную\n";
echo "информацию о внутренней</font> <font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "конфигурации. Значения одних переменных\n";
echo "задаются РНР, другие изменяются в</font><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "</font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">зависимости\n";
echo "от операционной системы и web-сервера, с\n";
echo "которыми работает РНР.</p>\n";
echo "<p>Вместо подробного описания всех\n";
echo "стандартных переменных я выделю лишь те\n";
echo "переменные и функции, которые используются\n";
echo "на практике многими программистами.</p>\n";
echo "<p>Чтобы получить полный список переменных\n";
echo "web-сервера, окружения и РНР, определенных\n";
echo "для вашей конфигурации системы, достаточно\n";
echo "выполнить следующий фрагмент:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>while (list($var,$value) = each($GLOBALS)) :</p>\n";
echo "<p>echo &quot;&lt;BR&gt;$var =&gt;\n";
echo "</font></font><font face=\"Courier New\" size=\"3\" color=\"#000000\">$</font><font face=\"Times New Roman\"><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">value&quot;;</p>\n";
echo "<p>endwhile;</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В результате выводится список наподобие\n";
echo "приведенного ниже. Потратьте немного\n";
echo "времени на просмотр полученных данных, а\n";
echo "затем разберите приведенные примеры.</p>\n";
echo "</font>\n";
echo "<p><font size=\"3\" color=\"#000000\" face=\"Courier New\">GLOBALS =&gt;</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_GET_VARS =&gt; Array\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_COOKIE_VARS =&gt; Array\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HOSTSIZE =&gt; 1000\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HOSTNAME =&gt; server1.apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "LOGNAME =&gt; unstrung\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HISTFILESIZE =&gt; 1000\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "REMOTEHOST =&gt; apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "MAIL -&gt; /var/spool/mail/apress\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "MACHTYPE =&gt; 1386\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "TERM =&gt; vt100\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HOSTTYPE =&gt; i386-linux\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "PATH =&gt;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "/usr/sbin:/sbin:/usr/local /bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/Java/bin\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HOME =&gt; /root\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "INPUTRC =&gt; /etc/inputrc\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SHELL =&gt; /bin/csh\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "USER =&gt; nobody\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "VENDOR =&gt; intel\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "GROUP =&gt; root\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HOST =&gt; server1.apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "OSTYPE =&gt; linux\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "PWD =&gt; /www/bin\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SHLVL =&gt; 3_ =&gt; /www/bin/httpd\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "DOCUMENT_ROOT =&gt; /usr/local/apress/site.apress\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_ACCEPT =&gt; */*\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_ACCEPT_ENCODING =&gt; gzip, deflate\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_ACCEPT_LANGUAGE =&gt; it.en-us;q=0.5\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_CONNECTION -&gt; Keep-Alive\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_HOST =&gt; www.apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "HTTP_USER_AGENT =&gt; Mozilla/4.0 (compatible; MSIE 5.0: Windows 98;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "CNETHomeBuild051099)\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "REMOTE_ADOR =&gt; 127.0.0.1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "REMQTE_PORT =&gt; 3207\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SCRIPT_FILENAME =&gt; /usr/local/apress/site.apress/j/environment_vars.php\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER_ADDR =&gt; 127.0.0.1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER_AOMIN =&gt; admin@apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER_NAME =&gt; www.apress.com\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVERJORT =&gt; 80\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER SIGNATURE =&gt;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "Apache/1.3.12 Server at www.apress.com Port 80\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER_SOFTWARE =&gt; Apache/1.3.12 (Unix) PHP/4.0.1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "GATEWAY_INTERFACE =&gt; CGI/1.1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SERVER_PROTOCOL =&gt; HTTP/1.1\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "REQUEST_METHOD =&gt; GET\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "QUERY_STRING =&gt;\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "REQUEST_URI =&gt; /j/environment_vars.php\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "SCRIPT_NAME =&gt; /j/environment_vars.php\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "PATH_TRANSLAETD =&gt; /usr/local/apress/site.apress/j/environment_vars.php\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "PHP_SELF =&gt; /j/environment_vars.php\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "argv =&gt; Array\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "argc =&gt; 0\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "var =&gt; argc\n";
echo "</font></p>\n";
echo "<p><font face=\"Courier New\" size=\"3\" color=\"#000000\">\n";
echo "value =&gt; argc\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Как видите, стандартные переменные\n";
echo "содержат разнообразные сведения — как\n";
echo "полезные, так и не очень. Вы можете вывести\n";
echo "любую из этих переменных по имени. Например,\n";
echo "следующая команда выводит IP-адрес\n";
echo "пользователя:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">print &quot;Hi! Your IP address is: $REMOTE_ADDR&quot;;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>IP-адрес выводится в числовой форме (например,\n";
echo "208.247.106.187).</p>\n";
echo "<p>Кроме того, стандартные переменные могут\n";
echo "использоваться для сбора информации о\n";
echo "браузере и операционной системе\n";
echo "пользователя. Команда</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" color=\"#000000\" size=\"3\">print &quot;Your browser is: $HTTP_USER_AGENT&quot;;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>возвращает информацию следующего вида:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" size=\"3\" face=\"Courier New\">Your browser is: Mozina/4.0 (compatible: MSIE 5.0; Windows 98:\n";
echo "CNETHomeBuild051099)</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Информация о браузере и операционной\n";
echo "системе, в которой он работает, может\n";
echo "пригодиться при построении страниц,\n";
echo "рассчитанных на специфические форматы\n";
echo "конкретных браузеров.</p>\n";
echo "</font>\n";
echo "<p><i><font face=\"Times New Roman\" color=\"#000000\" size=\"3\"><img border=\"0\" src=\"Prim.gif\" align=left width=\"36\" height=\"35\">Для\n";
echo "работы с массивами стандартных переменных\n";
echo "необходимо включить директиву track_vars в файл\n";
echo "php.ini. В РНР версии 4.0.3 директива track_vars\n";
echo "включена постоянно.</font></i></p>\n";
echo "<b>\n";
echo "<p><font size=\"4\" face=\"Times New Roman\"><A NAME=\"ee\"></A><font color=\"#000000\">Константы</font></font></p>\n";
echo "</b><i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Константой </font></i><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">называется\n";
echo "именованная величина, которая не\n";
echo "изменяется в процессе выполнения программы.\n";
echo "Константы особенно удобны при работе с\n";
echo "заведомо постоянными величинами —\n";
echo "например, числом &#960; (3,141592) или количеством\n";
echo "футов в миле (5280).</p>\n";
echo "<p>В РНР константы определяются функцией define(\n";
echo "). После того как константа будет\n";
echo "определена, вы не сможете изменить (или\n";
echo "переопределить) ее в этой программе.</p>\n";
echo "<p>Например, определение числа я в сценарии\n";
echo "РНР может выглядеть так:</p>\n";
echo "</font>\n";
echo "<p><font face=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">define(&quot;'PI&quot;, &quot;3.141592&quot;);\n";
echo "</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Определенную константу можно\n";
echo "использовать в программе:</p>\n";
echo "</font>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;The value of pi is&quot;. PI.&quot;&lt;br&gt;&quot;;</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">$pi2 - 2 * PI:</font></p>\n";
echo "<p><font color=\"#000000\" face=\"Courier New\" size=\"3\">print &quot;Pi doubled equals $pi2.&quot;;</font></p>\n";
echo "<font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>Результат работы этого фрагмента будет\n";
echo "таким:</p>\n";
echo "</font><font FACE=\"Courier New\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>The value of pi is 3.141592.</p>\n";
echo "<p>Pi doubled equals 6.283184.</p>\n";
echo "</font><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В этом фрагменте следует обратить\n";
echo "внимание на два обстоятельства. Во-первых, в\n";
echo "именах констант не указывается знак\n";
echo "доллара. Во-вторых, константу невозможно\n";
echo "модифицировать (например, присвоить ей\n";
echo "величину 2*РI); если константа используется в\n";
echo "вычислениях, то результат приходится\n";
echo "сохранять в другой переменной.</p>\n";
echo "</font><b>\n";
echo "<p><font size=\"4\" face=\"Times New Roman\"><A NAME=\"ff\"></A></font><font face=\"Times New Roman\" color=\"#000000\" size=\"4\">Итоги</font></p>\n";
echo "</b><font FACE=\"Times New Roman\" SIZE=\"3\" COLOR=\"#000000\">\n";
echo "<p>В этой главе был изложен довольно\n";
echo "обширный материал, необходимый для\n";
echo "понимания и самостоятельного написания\n";
echo "простых программ на РНР. В частности, мы\n";
echo "рассмотрели следующие темы:</p>\n";
echo "<ul>\n";
echo "  <li>допустимые типы данных (целые и\n";
echo "вещественные числа, строки, массивы,\n";
echo "объекты, логические величины);</li>\n";
echo "  <li>идентификаторы;</li>\n";
echo "  <li>переменные (объявление, область действия);</li>\n";
echo "  <li>переключение типов;</li>\n";
echo "  <li>преобразование типов;</li>\n";
echo "  <li>присваивание значений переменным (по\n";
echo "значению, по ссылке);</li>\n";
echo "  <li>константы.</li>\n";
echo "</ul>\n";
echo "<p>Этот материал закладывает основу для\n";
echo "создания более сложных сценариев. В\n";
echo "следующей главе мы перейдем к подробному\n";
echo "изучению выражений, операторов и\n";
echo "управляющих конструкций языка РНР. К концу\n";
echo "главы 3 ваших новых знаний хватит для того,\n";
echo "чтобы построить первое приложение РНР —\n";
echo "простейший календарь.</p>\n";
echo "</font>\n";
echo "<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000066\" class=\"mtx1\">\n";
echo "<tr>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 1/1.htm\"><strong>&lt;&lt;&lt;&nbsp;Назад</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../index.html\"><strong>Содержание</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "<td bgcolor=\"#CAEEFF\"><center>&nbsp;<a href=\"../Chapter 3/1.htm\"><strong>Вперед&nbsp;&gt;&gt;&gt;</strong></a>&nbsp;\n";
echo "</center></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</BODY></HTML>\n";
?>
