Что такое PHP?
PHP - это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. Это не CGI, но вполне заменяет его! PHP очень похож на ASP (существует даже конвертор asp2php), но приспособлен к unix-likeсистемам и чаще всего употребляется с web-сервером apache, хотя может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP3является объектно-ориентированным.
На мой взгляд, основное преимущество PHP - простота, гибкость и скорость выполнения. Мне, например, понадобилось минут 15 для просмотра мануалов и примеров, для того, чтобы перевести весь контент моего сайта на SQL (подробнее следующих ШАГ-ах) и написать php-скрипт для выдачи его в html коде с шаблонным дизайном. Зачем так сложно? А вовсе и не сложно. Теперь, чтобы выложить на сайт новую статью или просто новость, я всего лишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу.
SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что он просто рожден существовать в связке apache+php+sql. Для свой работы я выбрал MySQL, который также существует и под linux и под win9x/NT.
В качестве иллюстрации простоты php, предлагаю пример, передающий список файлов в текущем каталоге.
Список файлов:
$dir = opendir(".");
while($file = readdir($dir))
echo "$file
";
closedir($dir);
?>
Код, помещенный в теги и ?> не передается браузеру, а выполняется непосредственно на стороне сервера. А выдается то, что выводит команда echo. Я думаю, что человек, мало-мальски знающий хотя бы один язык программирования, поймет этот пример без проблем. Кажется, PHP похож на C? или Perl? илиBasic? А вот к стати тот же пример в ООП варианте:
$dir = dir(".");
while($file = $dir->read())
echo "$file
";
$dir->close();
?>
И ведь вы можете это писать в своем любимом html редакторе! Лично я настолько
полюбил этот язык, что пишу в нем и скрипты для linux shell (хотя это уже из
области XXX и даже под dos/win. А запустить скрипт из шела проще некуда: php3 -q получается отличный интерпретатор.
А вот, для наглядности, еще пример для работы с MySQL:
$conn=mysql_connect("127.0.0.1");
if (mysql_select_db("db",$conn)) {
$res=mysql_query("select * from tabl", $conn);
while(($data=mysql_fetch_row($res)))
echo("$data[0] $data[1]\\n");
} else
echo "Error!\\n";
?>
Этот скрипт выводит таблицу tabl из базы данных db на локальном MySQL сервере.
Ссылки на тему php:
Установка.
В первых строках своего письма хочу сообщить, что хотя инсталяция PHP - дело совсем не хитрое и по крайней мере линуксоиды, отличающиеся умом и сообразительностью ;-), а так же уменем вникать в тексты документации на любом языке, с этим делом справляются на р-р-р-р-аз, у виндозистов зачастую возникают странные, на мой взгляд, вопросы. В таком случае целесообразно все-таки рассмотреть инсталяцию PHP, но только под windos. Сразу предупрежу, что способов работы с php существует несколько и я не буду здесь описывать каждый из них, а лишь один и самый простой, на мой взгляд. Также учтите и то, что этот способ не является безопасным (всмысле вашего сервера, читайте security.shtml в мануале от PHP), да и о какой безопасности под виндами может идти речь. Хотя линчо у меня на моей WindowsNT стоят Apache, MySQL и PHP - они естественно используются лишь для отладки скриптов, перед выкладыванием их на сервер и эта комбинация не является полноценным вебсервером, поэтому к неу нет доступа извне. Зато очень даже здорово отлаживать скрипты и дизайн, таким образом, всем рекомендую.
Начнем с того, что вам не стоит скачивать и компилировать PHP из исходного кода, это лишнее. Возьмите готовый дистрибутив (у меня он назывался php-3.0.11-win32.zip) и просто скопируйте все файлы туда, где вы хотите содержать php (лично у меня это c:/php3/). Пол дела сделано! Кстати, кроме самого дистрибутива, вам понадобится еще и документация, валяющаяся на том же сервере (список, html-вариант).
Идем дальше. Теперь в первую очередь вам необходимо отредактировать файл php3.ini (оригинал php3.ini-dist). Измените в нем праметр extension_dir=<путь где лежит ваш PHP3 со всеми модулями> (у меня, как говорилось это c:/ php3/), а также уберите коментарии со строк extension= с теми модулями, которые вам будут необходимы (если вы не просекаете и смысл, значит вам они не нужны). И все! Теперь поместите этот файл (php3.ini) в корневой каталог вашейwindows (c:\\windows обычно). Собственно сам php3 - готов. Чтобы проверить его работу создайте файл со следующим содержимым:
echo "Список файлов\\n";
$dir = dir(".");
while($file = $dir->read())
echo "$file\\n";
$dir->close();
?>
И запустите его так <путь к вашему php>/php.exe -q <имя файла>. Для особо талантливых обьясняю подробнее. Если вы поместили все файлы из дистрибутива php в каталог c:/php3/, а созданный вами файл с вышеописанным скриптом называется test.php то запустить его вам нужно будет так:
c:/php3/php.exe -q test.php
Этот скрипт должен вывести список файлов в текущем каталоге.
Следующий шаг - конфигурирование вебсервера для работы с PHP. Если вы используете IIS - ваши проблемы (используйте файл php_iis_reg.inf в поставкеPHP3), если вы используете apache, то сейчас я вам помогу.
Вообще идеология обработки php-сценариев сервером очень проста. Есть такое понятие как mime тип файла, который определяется по расширению, гляньте в файл mime.types и вы сами, надеюсь, все поймете. Файл имеет простой формат: <тип файла> <расширение файла>. Вот мы и вставим в него следующие три строчки:
application/x-httpd-php3 php
application/x-httpd-php3 php3
application/x-httpd-php3 phtml
Что мы этим имеем ввиду? Что файлы с расширением php, php3 и phtml являются приложением (application) типа x-httpd-php3 (а можете и сами название этого типа придумать, дальше поймете зачем это вообще нужно). Есть, к стати, и второй вариант прописывания mime-типов, напрямую в httpd.conf вот так:
AddType application/x-httpd-php3 .php
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3 .phtml
После того. Как мы покончили с определением типов (и все знают этих типов). Нам осталось добавить в httpd.conf всего одну строчку для запуска этих сценариев. Вот эту: Action application/x-httpd-php3 <путь и имя php транслятора>, которая означает, что для файлов типа application/x-httpd-php3запускать указанную вами прогу. У меня под win эта строчка выглядит так:
Action application/x-httpd-php3 /cgi-bin/php.exe
То есть я положил сам php.exe в директорию прописанную как /cgi-bin/ и не мучался (добавить три лишние строки) с прописыванием разрешения на запуск из собствненой директории php.
Собственно вот и все. Запускайте ваш вебсервер и пробуйте скрипты из архива с документацией от php или описанные мной. Если у вас все таки что-то неработает - смотрите логи от вебсервера. Опишу вкратце еще раз все необходимые действия:
С чего начинается Родина?
С картинки в родном букваре , то есть с чтения (или хотя бы просмотра) документации. Не пугайтесь. В конце - концов, если вы собираетесь работать на phpвам когда-либо все равно придется заглянуть туда и лучше, если вы это сделаете сейчас, благо мануал у php очень удобный, легкий, не требующий длительного штудирования, но основы языка нужно знать и без чтения тут никак не обойтись.
Вообще я потратил не мало времени за написанием скриптов на php и если это время можно измерить сотнями часов, то время, потраченное на поиск нужных функций или решение проблем с осуществлением каких-либо специфических операций, в общем время просиженной за документаций, как ни странно, не более одного часа! Так что еще раз повторю - не пугайтесь и флаг (очки) вам в руки.
Начнем с того, что для PHP существует четыре способа отделения его от общего кода HTML (имеется ввиду для интерпретации)
1. echo ("SGML инструкции\\n"); ?>
2.
3.
echo ("специально для FrontPage");
4. <% echo ("ASP-стиль"); %>
<%= $variable; # Комментарий "<%echo .." %>
Далее необходимо конечно сказать и о том, что инструкции в PHP отделяются друг от друга сишно-паскалевско-перловым способом - точкой с запятой. Хотя перед закрывающим тегом (?>) точку с запятой ставить не обязательно.
echo "This is a test also" ?>
PHP поддерживает комментарии в стиле C, C++ и Unix shell. Например:
echo "test"; // Комментарий в стиле C++
/* Это многострочный
комментарий в стиле C++*/
echo "test2";
echo "Test3"; # Это unix-shell комментарий
?>
ТИПЫ
PHP поддерживает следующие типы данных:
$foo = "0"; // $foo строка (ASCII 48)
$foo++; // $foo тоже строка "1" (ASCII 49)
$foo += 1; // $foo теперь integer (2)
$foo = $foo + 1.3; // $foo теперь double (3.3)
$foo = 5 + "10 поросят"; // $foo теперь снова integer (15)
$foo = 5 + "10 ящиков"; // $foo и по прежнему integer (15)
// значение в скобках - результирующее значение переменной
Преобразовывать типы можно чистА в сишном стиле:
$foo = 10; // $foo это integer
$bar = (double) $foo; // $bar это double
Разрешенные преобразования:
ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
Во-первых, все переменные начинаются с символа $
Во-вторых, существуют границы определения переменных. Например, чтобы использовать глобальные переменные в функциях, необходимо их сначала декларировать как глобальные, иначе вы будете использовать локальные переменные. Поясню на примере:
$a = 1; /* глобальное определение */
Function Test (){
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Таким образом в функции используется локальная, собственная переменная и результатом программы будет вывод чисел 2 и 1, а не 2 и 2, как некоторые могли подумать.
Ну, а если вы хотите в функции использовать глобальные переменные, необходимо сделать так (декларировать с помощью оператора global):
$a = 1; /* глобальное определение */
Function Test (){
global $a;
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Теперь в функции вы переопредилили глобальную переменную и вывод будет числа 2 и 2. Но есть и другой способ добраться до глобально-определенных данных - через ассоциативный массив $GLOBALS[ ]. Пример предыдущей программы, реализованный новым способом:
$a = 1; /* глобальное определение */
Function Test (){
$GLOBALS["a"]=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Обратите внимание, что переменная в массиве указывается без символа $. Кроме этого PHP предоставляет возможность использовать статические переменные. Все как в C/C++:
Function Test (){
static $a = 0;
echo $a;
$a++;
}
Test();
Test();
Test();
Результатом выполнения этого скрипта будет вывод чисел 0,1 и 2.
ПЕРЕМЕННЫЕ ПЕРЕМЕННЫЕ
Скорее всего скоро вам понадобятся переменные c динамически (в ходе работы скрипта) изменяемым наименованием. Поясню на примере, что я имею в виду:
$a = "hello";
$$a = "world";
Данная запись означает, что переменной с именем a мы присваиваем значение "hello". Следующей операцией переменной с именем, хранящимся в переменной с именем a, то есть - переменной hello мы присваиваем значение "world".
echo "$a ${$a}";
тоже самое, что и
echo "$a $hello";
В результате мы получим на экране hello world.
Дело немного усложняется, если вы хотите использовать подобные массивы. Ведь если вы запишете $$a[1] - интерпретатору надо будет знать, что использовать в качестве переменной - $a или $$a (имя, хранящееся в $a). В таком случаем вам придется использовать следующий синтаксис - ${$a[1]} в случае, если вы хотите использовать переменную с именем, хранящимся в массиве $a с индексом 1 и ${$a}[1] в другом случае (если вы хотите использовать 1 элемент массива с именем, хранящимся в переменной $a.
Надеюсь все понятно.
или прыжок на месте.
Мы продолжаем наш концерт, а заодно и рассматривать основы PHP. Сегодня начнем с внешних переменных.
HTML Формы (GET и POST)
После заполнения пользователем HTML формы PHP может получить доступ к этим данным через переменные, имеющие такие-же названия, что и поля в форме. Как всегда продемонстрирую на примере:
Name:
Значит после того, как пользователь нажмет в форме кнопку submit в php-скрипт foo.php3 методом post передадутся данные из формы, а обратиться, например к текстовому полю, из этого скрипта можно будет через переменную $name. Кроме того, можно использовать и массивы в качестве названий полей.
В результате этот скрипт array.php может вывести полученные результаты так:
echo "Имя: ".$personal["name"];
echo "Email: ".$personal["email"];
for ($i=0;$i
echo $beer[$i]."
";
Кроме этого, как известно, в форме в качестве submit-кнопки можно применять картику . В таком случае скрипту передаются еще две дополнительные переменные, содержащие координаты точки, на которой кликнули мышкой. Это sub_x и sub_y.
PHP - это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. Это не CGI, но вполне заменяет его! PHP очень похож на ASP (существует даже конвертор asp2php), но приспособлен к unix-likeсистемам и чаще всего употребляется с web-сервером apache, хотя может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP3является объектно-ориентированным.
На мой взгляд, основное преимущество PHP - простота, гибкость и скорость выполнения. Мне, например, понадобилось минут 15 для просмотра мануалов и примеров, для того, чтобы перевести весь контент моего сайта на SQL (подробнее следующих ШАГ-ах) и написать php-скрипт для выдачи его в html коде с шаблонным дизайном. Зачем так сложно? А вовсе и не сложно. Теперь, чтобы выложить на сайт новую статью или просто новость, я всего лишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу.
SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что он просто рожден существовать в связке apache+php+sql. Для свой работы я выбрал MySQL, который также существует и под linux и под win9x/NT.
В качестве иллюстрации простоты php, предлагаю пример, передающий список файлов в текущем каталоге.
Список файлов:
$dir = opendir(".");
while($file = readdir($dir))
echo "$file
";
closedir($dir);
?>
Код, помещенный в теги и ?> не передается браузеру, а выполняется непосредственно на стороне сервера. А выдается то, что выводит команда echo. Я думаю, что человек, мало-мальски знающий хотя бы один язык программирования, поймет этот пример без проблем. Кажется, PHP похож на C? или Perl? илиBasic? А вот к стати тот же пример в ООП варианте:
$dir = dir(".");
while($file = $dir->read())
echo "$file
";
$dir->close();
?>
И ведь вы можете это писать в своем любимом html редакторе! Лично я настолько
полюбил этот язык, что пишу в нем и скрипты для linux shell (хотя это уже из
области XXX и даже под dos/win. А запустить скрипт из шела проще некуда: php3 -q
А вот, для наглядности, еще пример для работы с MySQL:
$conn=mysql_connect("127.0.0.1");
if (mysql_select_db("db",$conn)) {
$res=mysql_query("select * from tabl", $conn);
while(($data=mysql_fetch_row($res)))
echo("$data[0] $data[1]\\n");
} else
echo "Error!\\n";
?>
Этот скрипт выводит таблицу tabl из базы данных db на локальном MySQL сервере.
Ссылки на тему php:
- http://phpclub.unet.ru - русский клуб программистов на PHP, здесь вы можете найти любую интерсующую вас информацию и пообщаться с профессионалами на эту тему (а так же связка PHP-SQL).
- http://www.php.org - сайт производителя.
- Неплохая документация по php (и кажется под php для win) лежит на http://www.citforum.ru
Установка.
В первых строках своего письма хочу сообщить, что хотя инсталяция PHP - дело совсем не хитрое и по крайней мере линуксоиды, отличающиеся умом и сообразительностью ;-), а так же уменем вникать в тексты документации на любом языке, с этим делом справляются на р-р-р-р-аз, у виндозистов зачастую возникают странные, на мой взгляд, вопросы. В таком случае целесообразно все-таки рассмотреть инсталяцию PHP, но только под windos. Сразу предупрежу, что способов работы с php существует несколько и я не буду здесь описывать каждый из них, а лишь один и самый простой, на мой взгляд. Также учтите и то, что этот способ не является безопасным (всмысле вашего сервера, читайте security.shtml в мануале от PHP), да и о какой безопасности под виндами может идти речь. Хотя линчо у меня на моей WindowsNT стоят Apache, MySQL и PHP - они естественно используются лишь для отладки скриптов, перед выкладыванием их на сервер и эта комбинация не является полноценным вебсервером, поэтому к неу нет доступа извне. Зато очень даже здорово отлаживать скрипты и дизайн, таким образом, всем рекомендую.
Начнем с того, что вам не стоит скачивать и компилировать PHP из исходного кода, это лишнее. Возьмите готовый дистрибутив (у меня он назывался php-3.0.11-win32.zip) и просто скопируйте все файлы туда, где вы хотите содержать php (лично у меня это c:/php3/). Пол дела сделано! Кстати, кроме самого дистрибутива, вам понадобится еще и документация, валяющаяся на том же сервере (список, html-вариант).
Идем дальше. Теперь в первую очередь вам необходимо отредактировать файл php3.ini (оригинал php3.ini-dist). Измените в нем праметр extension_dir=<путь где лежит ваш PHP3 со всеми модулями> (у меня, как говорилось это c:/ php3/), а также уберите коментарии со строк extension= с теми модулями, которые вам будут необходимы (если вы не просекаете и смысл, значит вам они не нужны). И все! Теперь поместите этот файл (php3.ini) в корневой каталог вашейwindows (c:\\windows обычно). Собственно сам php3 - готов. Чтобы проверить его работу создайте файл со следующим содержимым:
echo "Список файлов\\n";
$dir = dir(".");
while($file = $dir->read())
echo "$file\\n";
$dir->close();
?>
И запустите его так <путь к вашему php>/php.exe -q <имя файла>. Для особо талантливых обьясняю подробнее. Если вы поместили все файлы из дистрибутива php в каталог c:/php3/, а созданный вами файл с вышеописанным скриптом называется test.php то запустить его вам нужно будет так:
c:/php3/php.exe -q test.php
Этот скрипт должен вывести список файлов в текущем каталоге.
Следующий шаг - конфигурирование вебсервера для работы с PHP. Если вы используете IIS - ваши проблемы (используйте файл php_iis_reg.inf в поставкеPHP3), если вы используете apache, то сейчас я вам помогу.
Вообще идеология обработки php-сценариев сервером очень проста. Есть такое понятие как mime тип файла, который определяется по расширению, гляньте в файл mime.types и вы сами, надеюсь, все поймете. Файл имеет простой формат: <тип файла> <расширение файла>. Вот мы и вставим в него следующие три строчки:
application/x-httpd-php3 php
application/x-httpd-php3 php3
application/x-httpd-php3 phtml
Что мы этим имеем ввиду? Что файлы с расширением php, php3 и phtml являются приложением (application) типа x-httpd-php3 (а можете и сами название этого типа придумать, дальше поймете зачем это вообще нужно). Есть, к стати, и второй вариант прописывания mime-типов, напрямую в httpd.conf вот так:
AddType application/x-httpd-php3 .php
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3 .phtml
После того. Как мы покончили с определением типов (и все знают этих типов). Нам осталось добавить в httpd.conf всего одну строчку для запуска этих сценариев. Вот эту: Action application/x-httpd-php3 <путь и имя php транслятора>, которая означает, что для файлов типа application/x-httpd-php3запускать указанную вами прогу. У меня под win эта строчка выглядит так:
Action application/x-httpd-php3 /cgi-bin/php.exe
То есть я положил сам php.exe в директорию прописанную как /cgi-bin/ и не мучался (добавить три лишние строки) с прописыванием разрешения на запуск из собствненой директории php.
Собственно вот и все. Запускайте ваш вебсервер и пробуйте скрипты из архива с документацией от php или описанные мной. Если у вас все таки что-то неработает - смотрите логи от вебсервера. Опишу вкратце еще раз все необходимые действия:
- скопировать php дистрибутив в выранную вами директорию;
- соответсвенное конфигурирование php3.ini (добвление этой самой директории) и помещение его в директорию windows;
- добавление новых mime типов для распознавания документов, содержащих сценарии php;
- сообщение серверу что делать с документами этих типов (запускать для них php.exe)
С чего начинается Родина?
С картинки в родном букваре , то есть с чтения (или хотя бы просмотра) документации. Не пугайтесь. В конце - концов, если вы собираетесь работать на phpвам когда-либо все равно придется заглянуть туда и лучше, если вы это сделаете сейчас, благо мануал у php очень удобный, легкий, не требующий длительного штудирования, но основы языка нужно знать и без чтения тут никак не обойтись.
Вообще я потратил не мало времени за написанием скриптов на php и если это время можно измерить сотнями часов, то время, потраченное на поиск нужных функций или решение проблем с осуществлением каких-либо специфических операций, в общем время просиженной за документаций, как ни странно, не более одного часа! Так что еще раз повторю - не пугайтесь и флаг (очки) вам в руки.
Начнем с того, что для PHP существует четыре способа отделения его от общего кода HTML (имеется ввиду для интерпретации)
1. echo ("SGML инструкции\\n"); ?>
2.
3.
echo ("специально для FrontPage");
4. <% echo ("ASP-стиль"); %>
<%= $variable; # Комментарий "<%echo .." %>
Далее необходимо конечно сказать и о том, что инструкции в PHP отделяются друг от друга сишно-паскалевско-перловым способом - точкой с запятой. Хотя перед закрывающим тегом (?>) точку с запятой ставить не обязательно.
echo "This is a test also" ?>
PHP поддерживает комментарии в стиле C, C++ и Unix shell. Например:
echo "test"; // Комментарий в стиле C++
/* Это многострочный
комментарий в стиле C++*/
echo "test2";
echo "Test3"; # Это unix-shell комментарий
?>
ТИПЫ
PHP поддерживает следующие типы данных:
- integer - целочисленные
- floating-point numbers или double - числа с плавающей запятой
- string - строки, текст
- array - массивы
- object - обьекты
$foo = "0"; // $foo строка (ASCII 48)
$foo++; // $foo тоже строка "1" (ASCII 49)
$foo += 1; // $foo теперь integer (2)
$foo = $foo + 1.3; // $foo теперь double (3.3)
$foo = 5 + "10 поросят"; // $foo теперь снова integer (15)
$foo = 5 + "10 ящиков"; // $foo и по прежнему integer (15)
// значение в скобках - результирующее значение переменной
Преобразовывать типы можно чистА в сишном стиле:
$foo = 10; // $foo это integer
$bar = (double) $foo; // $bar это double
Разрешенные преобразования:
- (int), (integer) - преобразование в integer
- (real), (double), (float) - преобразование в double
- (string) - преобразование в string
- (array) - преобразование в array
- (object) - преобразование в object
ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
Во-первых, все переменные начинаются с символа $
Во-вторых, существуют границы определения переменных. Например, чтобы использовать глобальные переменные в функциях, необходимо их сначала декларировать как глобальные, иначе вы будете использовать локальные переменные. Поясню на примере:
$a = 1; /* глобальное определение */
Function Test (){
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Таким образом в функции используется локальная, собственная переменная и результатом программы будет вывод чисел 2 и 1, а не 2 и 2, как некоторые могли подумать.
Ну, а если вы хотите в функции использовать глобальные переменные, необходимо сделать так (декларировать с помощью оператора global):
$a = 1; /* глобальное определение */
Function Test (){
global $a;
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Теперь в функции вы переопредилили глобальную переменную и вывод будет числа 2 и 2. Но есть и другой способ добраться до глобально-определенных данных - через ассоциативный массив $GLOBALS[ ]. Пример предыдущей программы, реализованный новым способом:
$a = 1; /* глобальное определение */
Function Test (){
$GLOBALS["a"]=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;
Обратите внимание, что переменная в массиве указывается без символа $. Кроме этого PHP предоставляет возможность использовать статические переменные. Все как в C/C++:
Function Test (){
static $a = 0;
echo $a;
$a++;
}
Test();
Test();
Test();
Результатом выполнения этого скрипта будет вывод чисел 0,1 и 2.
ПЕРЕМЕННЫЕ ПЕРЕМЕННЫЕ
Скорее всего скоро вам понадобятся переменные c динамически (в ходе работы скрипта) изменяемым наименованием. Поясню на примере, что я имею в виду:
$a = "hello";
$$a = "world";
Данная запись означает, что переменной с именем a мы присваиваем значение "hello". Следующей операцией переменной с именем, хранящимся в переменной с именем a, то есть - переменной hello мы присваиваем значение "world".
echo "$a ${$a}";
тоже самое, что и
echo "$a $hello";
В результате мы получим на экране hello world.
Дело немного усложняется, если вы хотите использовать подобные массивы. Ведь если вы запишете $$a[1] - интерпретатору надо будет знать, что использовать в качестве переменной - $a или $$a (имя, хранящееся в $a). В таком случаем вам придется использовать следующий синтаксис - ${$a[1]} в случае, если вы хотите использовать переменную с именем, хранящимся в массиве $a с индексом 1 и ${$a}[1] в другом случае (если вы хотите использовать 1 элемент массива с именем, хранящимся в переменной $a.
Надеюсь все понятно.
или прыжок на месте.
Мы продолжаем наш концерт, а заодно и рассматривать основы PHP. Сегодня начнем с внешних переменных.
HTML Формы (GET и POST)
После заполнения пользователем HTML формы PHP может получить доступ к этим данным через переменные, имеющие такие-же названия, что и поля в форме. Как всегда продемонстрирую на примере:
Name:
Значит после того, как пользователь нажмет в форме кнопку submit в php-скрипт foo.php3 методом post передадутся данные из формы, а обратиться, например к текстовому полю, из этого скрипта можно будет через переменную $name. Кроме того, можно использовать и массивы в качестве названий полей.
В результате этот скрипт array.php может вывести полученные результаты так:
echo "Имя: ".$personal["name"];
echo "Email: ".$personal["email"];
for ($i=0;$i
echo $beer[$i]."
";
Кроме этого, как известно, в форме в качестве submit-кнопки можно применять картику . В таком случае скрипту передаются еще две дополнительные переменные, содержащие координаты точки, на которой кликнули мышкой. Это sub_x и sub_y.