От практики к теории. PHP. Часть 1
В соответствии с названием, эта статья не является подробным справочником языка,
и носит ознакомительный характер. Если вы хотите быстро разобраться что к чему
и прочитав несколько страниц начать пользоваться php, то эта статья для вас!
Ну а за более исчерпывающей информацией вы можете после обратиться к первоисточнику,
также в интернете лежит много толстых книг (листов 200-800), посвященных этому
языку, ну а мы рассмотрим практическое использование возможностей которые просты
и понятны на первых порах.
Что такое php?
Само собой язык программирования, но не просто программирования, а веб-программирования, и притом обладающий некоторыми полезными свойствами, например:
- php - скриптовый язык программирования, т.е. программы написанные на нем не нуждаются в компиляции, т.к. работают под сервером на котором должен быть установлен интерпритатор php. Именно поэтому хостинг с php как правило дороже чем без него.
- В связи с первым пунктом, важно заметить что код php можно включать в любое место страницы, и неоднократно! Это дает большую гибкость, и множество возможностей для создания динамичных страниц.
Вставка в html-код страницы
Ну начнем с того как же включать код php в ваши странички чтобы он работал. В мануале написано:
Существует четыре набора тегов, которые могут быть использованы для обозначения php-кода. Из них только два (<?php. . .?> и <script language="php">. . .</script>) всегда доступны; другие могут быть включены или выключены в конфигурационном файле php.ini
То что будет между ними будер рассматриваться интерпритатором как код php, и сам по себе в браузере отображаться не будет.
Итак, в нашем случае код будет прописан между тегами <?php и ?>.
Динамическое построение страниц
Если вы уже делали сайт, используя только html(например на бесплатном хостинге типа narod.ru), то знаете насколько неудобно обновлять контент при смене дизайна, фреймы не решение, javascript отображается не везде и порой выдает сюрпризы... Как вариант - использовать php. Самое простое решение - вынести в отдельный файл наше меню.
В php есть 4 функции для вставки файлов в скрипт:
include, include_once, require, require_once
Функция include вставляет в страницу содержимое файла, путь к которому указан в параметре.
Синтаксис:
include "page_url";
include("page_url");
include 'page_url';
Где page_url - адрес целевого файла. Интерпритатор просто прочитывает файл побайтно и вставляет содержимое вместо инструкции include. Важно помнить что содержимое файла само по себе не рассматривается как скрипт php, если внутри него не содержится тегов начала скрипта php(<?php или <script language="php">). Т.е. если вы включаете в страничку html-файл то и отображаться этот фрагмент будет как html. Причем в отличие от фреймов расширение не играет никакой роли.
Функция require по своему действию и синтаксису аналогична функции include. Разница в 2х вещах:
1)require - независимая функция, т.е. выполняется в любом случае, в то время как include можно поставить в условную конструкцию, т.е она будет выполняться по соблюдении определенных условий, а при не соблюдении выполняться не будет. require выполняется сразу же как только интерпритатор на нее натыкается.
2)Если файл объявленный в качестве параметра функции require отсутствует, или к нему нет доступа, то программа перестает выполняться и выдает ошибку. Т.е. функцию require следует применять только для критически-важных файлов, например для заголовкоф функций, или данных с паролями к базам данных, необходимых для работы движка.
Функции include_once и require_once идентичны своим прототипам include и require, за одним исключением: они не дают включать в код содержимое одного и того же файла несколько раз. Вставка происходит 1 раз для каждого имени файла объявленного в качестве параметра для каждой страницы. Если в программе содержится 2 или больше обращений к одному и тому же файлу через include_once или require_once, то выполняется оно только 1 раз, а потом просто игнорируется.
Вывод информации в код html-страницы
Вывод информации прямо в html-код странички из вашего приложения осуществляется при помощи стандартных функций php, таких как print и echo. По характеру действия они идентичны, поэтому пользоваться можете тем который удобнее.
Синтаксис:
print("Текст или <html-тэг>, либо же все содержимое html-страницы, которая должна быть отображена после выполнения программы");
print "Тот же текст, разница в написании, как вам удобнее.";
|
echo("и тут тот же текст, пишите что хотите");
echo"вообще никаких принципиальных отличий, дело вкуса";
|
Но тут возникает резонный вопрос: а зачем нам так делать? И действительно гораздо целесообразнее вместо
<?php
......Код программы......
print"<H2>hello world!!</H2>";
...Продолжение кода программы...
?>
Прописать:
<?php
......Код программы......
?><H2>hello world!!</H2><?php
...Продолжение кода программы...
?>
Результат будет точно такой же... А нужны эти операторы для того чтобы отображать динамически изменающуюся информацию из переменных по синтаксису:
$text="hello world"; //Переменной text($-символ переменной в php) присваивается значение "hello world"
print"$text"; //Выводится содержимое переменной.
Вы наверное догадались что присваивать значения переменных можно разными способами, и что во время работы программы они могут изменяться. Это и открывает php очень широкие возможности как инструменту создания интерактивных сайтов. Но я несколько забегаю вперед, поэтому давайте рассмотрим что такое переменные в php:
Переменные
Переменные - это зарезервированные группы ячеек памяти, которым присваивается определенное имя и с которыми можно производить различные операции. В php есть такая отличительная особенность что тип переменной определять нет необходимости, т.е. в отличии от скажем языка c++, текстовые, численные или логические переменные определяются и обозначаются совершенно одинаково.
Синтаксис:
$variable
Причем знак доллара($) означает что данное выражение - переменная, а слово которое идет за ним - имя самой переменной. К имени переменной предъявляются следующие требования: имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания. Именя переменных чувствительны к регистру, т.е $name, $name, $name, $name - четыре совершенно разных переменных. Советую вам сразу определиться как вам удобнее писать имена переменных и придерживаться этого стандарта.
Разновидностью переменных являются массивы - те же наборы ячеек памяти, так же имеющих имя, но отличительной особенностью является то что массив содержит в себе несколько значений, связанных с их ключами. Массив можно представить как несколько переменных объединенных под одним именем, обращение к каждой из которых происходит при указании ключа нужного значения. Синтаксис таков: $massiv[key]. Имя массива подчиняется тем же правилам что и имя переменной. В квадратные скобки заключено имя ключа. В качестве ключа может использоваться как цифра, так и строковое значение, и даже другая переменная/значение массива. В последних случаях происходит простая замена имени переменной на ее значение при обработке. Если в качестве ключа использовано строковое значение, например "key1","key2","anykey1"..., то такой массив будет называться ассоциативным.
Примечание: по умолчанию в качестве ключей массива используются цифры, присваивание начинается с нулевого ключа($array[0], $array[1],...).
С переменными возможны 2 операции - чтение и запись, ну а все то многообразие - всего лишь разновидности и комбинации, тут же можно дать определение функциям - как последовательности простых операций, собранных вместе для облегчения работы программиста. Функции бывают как стандартные, включенные в сам язык php, так и определенные пользователем, и могут включать в себя теоретически неограниченное количество других функций или копий самих себя наравне с операторами.
Операторы
Оператор представляет собой символическое обозначение некоторого действия, выполняемого с операндами в выражении.
Операнд представляет собой некоторую величину, обрабатываемую в программе.
Вот полный список всех операторов, упорядоченных по убыванию приоритета:
Оператор |
Цель |
( ) |
Изменение приоритета |
new |
Создание экземпляров объектов |
!~ |
Логическое отрицание, поразрядное отрицание
|
++ -- |
Инкремент, декремент |
@ |
Маскировка ошибок |
/ * % |
Деление, умножение, остаток |
+ - . |
Сложение, вычитание, конкатенация(соединение) |
<< >> |
Сдвиг влево, сдвиг вправо (поразрядный) |
< <= > >= |
Меньше, меньше или равно, больше, больше или равно |
== != === <> |
Равно, не равно, идентично, не равно |
& ^ | |
Поразрядные операции and, xor и or |
&& || |
Логические операции and и or |
?: |
Тернарный оператор |
= += *= /= .= |
Операторы присваивания |
%= &= |= ^= |
|
<<= >>= |
|
and xor or |
Логические операции and, xor и or |
Более детальное описание каждого из перечисленных операторов вы найдете в мануале так же как и остальную информацию. Вопрос в том что мануал опять таки сложен для изучения языка, потому как содержит много непонятной на первых порах информации, и пользоваться им следует скорее как справочником.
Итак, теперь мы имеем возможность создавать, изменять и выводить значения переменных. Теперь рассмотрим возможности получения информации от пользователя на примере обычной формы:
html-код формы:
<form action="page.php" method="post">
Ваше имя: <input name="name">
Ваш пол: <select name="age">
<option value="<18"><18
<option value=">18">>18
</select>
<input type="submit" value="Отправить">
</form>
|
Содержимое страницы page.php:
<?php
$user_name=$_post[name];
$userage=$_post[age];
print "Здравствуйте, $name. Вам $age лет.";
?>
|
Теперь разберемся что это значит. В форме в первой строке определяется параметр action="page.php". page.php - это адрес странички на которую будут переданы данные введенные пользователем при нажатии кнопки отправки. method="post" - метод передачи, бывает 2х видов - get и post. Разница в том что метод get передает данные прямо через url, поэтому пользователю будет видна эта информация в адресной строке, в то время как метод post передает данные скрыто, в адресной строке будет показан только адрес к страничке page.php.
Данные из формы передаются в массив, имя которого будет либо $_post, либо $_get - в зависимости от выбранного метода передачи. Могут использоваться и оба метода, например если в параметре action указать "page.php?from=here&to=there". В таком случае в страничке page.php будет доступен и элемент массива $_get[from] со значением "here" и $_get[to] со значением "there". В нашем же случае, мы имеем имя посетителя и его приблизительный возраст, записанные в массиве $_post под ключами name и age. После объявляются новые переменные $user_name и $userage, которым присваиваются их значения, и с этими переменными можно производить любые действия. Элементы массивов $_post и $_get являются константами, т.е во время работы программы на этой странице они уже не меняются, поэтому если вы хотите внести изменения то лучше создать новые переменные.
Итак, разбор полетов. Вы уже ознакомились со способами динамического построения
страниц как при помощи включения файлов, так и при помощи прямого вывода информации
из php-приложения. Узнали что такое переменные и массивы, и научились использовать
данные переданные формой. На этом мы окончим первую часть, а во второй будут
рассмотрены стандартные функции для работы с данными, способы сохранения информации
для записи и получения ее из этих "хранилищ". Вторая часть статьи появится первым
делом на моем сайте. Там
же вы можете найти и другие мои статьи по тематике кодинга и веб-программирования.
Автор: bolzamo
Источник: www.bolzamo.e2e.ru
|