Список форумов   FAQ   Поиск  
  Вход
Список форумов World Wide Web Web-программирование

Учим php все вместе

Все вопросы по web-программированию. Php, Perl, HTML, CSS, JavaScript и др. Установка и настройка CGI скриптов

Учим php все вместе

Сообщение Kiberman » Среда 23 Февраль 2005 16:59:08

Я вот подумал и решил все-таки заняться своими обязанностями в форуме и решил Вас кое-чему научить
--- --- ---
Здесь я буду писать, и дописывать маленькие примеры программирования на языке PHP.
Итак кому это всё будет интерестно то давайте учить этот язык вместе с нами.

--- --- ---
Чтоб здесь никто не флудил эта тема будет постоянно закрыта. Но Вы не беспокойтесь я естественно буду пополнять эту тему новыми и интересными сообщениями

Программы PHP могут выполняться двумя способами: как сценарное приложение Web-сервером и как консольные программы. Поскольку, нашей задачей является программирование web-приложений, мы преимущественно будем рассматривать первый способ.

Рассмотрим процесс выполнения php-сценария при обращении браузера к серверу. Итак, вначале браузер запрашивает страницу с расширением .php, после чего web-сервер пропускает программу через машину PHP и выдаёт результат в виде html-кода. Причем, если взять стандартную страницу HTML, изменить расширение на .php и пропустить её через машину PHP, последняя просто перешлёт её пользователю без изменений. Чтобы включить в этот файл команды PHP, необходимо заключить команды PHP в специальные теги, которых различают 4 вида (они эквивалентны и можно использовать любые) :wink:

  1. Инструкция обработки XML:
    Код: Выделить всё
    <?php
       ...
    ?>
  2. Инструкция обработки SGML:
    Код: Выделить всё
    <?
       ...
    ?>
  3. Инструкция обработки сценариев HTML:
    Код: Выделить всё
    <script language = "php">
       ...
    </script>
  4. Инструкция в стиле ASP:
    Код: Выделить всё
    <%
       ...
    %>
Мы будем придерживаться стиля XML или SGML так как им пользуется большинство программистов, в том числе и Я :D
Последний раз редактировалось Kiberman Суббота 12 Март 2005 22:01:59, всего редактировалось 2 раз(а).
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск

Комментарии

Сообщение Kiberman » Четверг 24 Февраль 2005 15:58:03

Комментарии
PHP предоставляет несколько методов для вставки комментариев. Проще всего пользоваться двойным слэшем (//), после чего PHP машина игнорирует все, что расположено до конца строки. Также можно пользоваться многострочными комментариями в стиле С (/*?*/). Для однострочных комментариев можно еще пользоваться символом решетки (#) (комментарий скриптовых языков UNIX).
Hello"); // [color=blue]Комментарий
[b]echo
("Hello"); # комментарий
/*
и это тоже комментарии
*/
?>
Следует помнить о том, что стили комментариев PHP действуют только внутри ограничителей PHP. Если PHP встретит эти символы комментариев вне ограничителей, то они, как и любой текст, будут помещены на html-страницу. Например:

Hello"); // [color=blue]нормальный комментарий
[b]?>

// а вот этот комментарий отобразиться броузером.


Заметим, что комментарии можно вставлять не только после конца оператора, а, например, и вот так:

Последний раз редактировалось Kiberman Суббота 12 Март 2005 21:59:32, всего редактировалось 1 раз.
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск

Переменные

Сообщение Kiberman » Пятница 25 Февраль 2005 20:52:02

Надеюсь Вы уже разобрались с више изложенным мною материалом то давайте теперь перейдём к переменным :wink:

Переменные

В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой или подчеркиванием. Следует также помнить, что имена переменных в РНР чувствительны к регистру, в отличие от ключевых слов.

При объявлении переменных в РНР не требуется явно указывать тип переменной, при этом одна и та же переменная может иметь на протяжении программы разные типы.

Переменная инициализируется в момент присваивания ей значения и существует до тех пор, пока выполняется программа. Т.е., в случае web-страницы это означает, что до тех пор, пока не завершен запрос

Внешние переменные

После того, как запрос клиента проанализирован веб-сервером и передан РНР машине, последняя устанавливает ряд переменных, которые содержат данные, относящиеся к запросу и доступны все время его выполнения. Сначала РНР берет переменные окружения Вашей системы и создает переменные с теми же именами и значениями в окружении сценария РНР для того чтобы сценариям, расположенным на сервере были доступны особенности системы клиента. Эти переменные помещаются в ассоциативный массив $HTTP_ENV_VARS (подробнее о массивах можно узнать чють поже).

Естественно, что переменные массива $HTTP_ENV_VARS являются системно зависимыми (поскольку это фактически переменные окружения). Посмотреть значения переменных окружения для Вашей машины Вы можете при помощи команды env (Unix) или set (Windows).
Затем РНР создает группу GET-переменных, которые создаются при анализе строки запроса. Строка запроса хранится в переменной $QUERY_STRING и представляет собой информацию, следующую за символом "?" в запрошенном URL. РНР разбивает строку запроса по символам & на отдельные элементы, а затем ищет в каждом из этих элементов знак "=". Если знак "=" найден, то создается переменная с именем из символов, стоящих слева от знака равенства. Рассмотрим следующую форму:


HDD: [color=green][b]
CDROM: [color=green][b]
[color=green][b]

Если Вы в этой форме в строке HDD наберете, к примеру, "Maxtor", а в строке CDROM "Samsung", то она сгенерирует следующую форму запроса:

[color=blue]http://localhost/PHP/test.php?HDD=Maxtor&CDROM=Samsung


В нашем случае РНР создаст следующие переменные: [b]$HDD
= "Maxtor" и $CDROM = "Samsung".

Вы можете работать с этими переменными из Вашего скрипта (у нас ? test.php) как с обычными переменными. В нашем случае они просто выводятся на экран:
HDD is $HDD");
[color=green][b]echo
("CDROM is $CDROM");
?>

Если запрос страницы выполняется при помощи метода POST, то появляется группа POST-переменных, которые интерпретируются также и помещаются в массив $HTTP_POST_VARS
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск

Константы

Сообщение Kiberman » Воскресенье 27 Февраль 2005 22:02:27

Константы
Константы объявляются в РНР при помощи функции define():

define(CONSTANT, value)

Первый параметр этой функции ? имя константы, второй ? её значение. При использовании константы на неё ссылаются по имени:



По традиции имена констант пишут буквами верхнего регистра. И хотя это только традиция, мы Вам рекомендуем ей следовать, поскольку плохие программисты получаются в том числе и из тех, кто не следовал хорошим традициям. Существует функция defined(), которая проверяет, определена ли константа:

CONSTANT is defined");
[color=green][b]}

?>
Последний раз редактировалось Kiberman Суббота 12 Март 2005 21:58:55, всего редактировалось 1 раз.
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск

Типы данных в РНР. Преобразование типов

Сообщение Kiberman » Суббота 12 Март 2005 22:26:43

Типы данных в РНР. Преобразование типов
Как уже было сказано, PHP предоставляет определенную гибкость в отношении типов переменных, т.е. с одной и той же переменной на протяжении программы можно работать и как со строкой, и как с числом. Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными:
  • integer;
  • string;
  • boolean;
  • double;
  • array;
  • object;
Есть функция gettype(), возвращающая тип, который РНР назначил переменной:

";
[color=green][b]echo
(gettype($var1));
?>

В первом случае РНР вернет string, во втором integer.
Существует также функция settype(), которая явно устанавливает тип:

";
[color=green][b]echo
(gettype($var));
?>

Выполнение этого фрагмента кода приведет к такому же результату, как и предыдущего.

Кроме функции settype() преобразование типов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется путем указания перед переменной ее нового типа, взятого в скобки:

$var = (int)$var;

Соответственно, выполнение следующего кода приведет к тому, что РНР вернет integer:

Последний раз редактировалось Kiberman Воскресенье 13 Март 2005 10:03:41, всего редактировалось 1 раз.
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск

Операторы

Сообщение Kiberman » Воскресенье 13 Март 2005 10:02:44

Операторы

Арифметические операторы
+ Сложение
- Вычитание
* Умножение
/ Деление
% Вычисление остатка по модулю (к примеру: 5 % 2=1)

Поразрядные операторы
Эта группа операторов работает с битовыми представлениями значений целочисленных операндов. В основном эти операторы применяются для создания набора булевых флагов. В наших упражнениях мы будем использовать эти операторы очень редко, однако на всякий случай ниже приведен пример с использованием этих операторов.

& Поразрядная конъюнкция (AND)
| Поразрядная дизъюнкция (OR)
^ Поразрядное исключающее ИЛИ (XOR)
~ Поразрядное отрицание (NOT)
> Сдвиг вправо битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого целочисленного операнда

Пример:

";
[color=green][b]echo
(5>>1); // равно 2
echo"";
echo(6&5); // равно 4
echo"";
echo(6|5); // равно 7
echo"";
echo(6^5); // равно 3
>?

Разберем первый пример. Двоичный код для 4 равен 100, при сдвиге влево на 2 разряда код 100 становится равным 10000, что соответствует десятичному значению 16. Остальные примеры могут быть разобраны аналогично. Обратим внимание на то, что сдвиг влево на n позиций эквивалентен умножению на 2n, а сдвиг вправо уменьшает соответствующее значение в 2n раз с отбрасыванием дробной части результата (поэтому 5>>1 равно 2). Основное назначение этих операторов ? быстрые вычисления. Так как их поддержка осуществляется на аппаратном уровне (процессор), алгоритмы, выполненные с использованием данных операторов получаются очень производительными.

Логические операторы

or или || ИЛИ
Xor исключающее ИЛИ
and или && И
! НЕ

Операторы этой группы, в отличие от поразрядных, работают с логическими переменными (boolean) и интенсивно используются в управляющих конструкциях: циклы и условия. Логические переменные, или более правильно, переменные типа Boolean имеют лишь два значения: true(истина) и false(ложь). В выражениях true и false можно заменить на 1(любое отличное от 0 число) и 0, соответственно. Возможность замены true и false на 1 и 0 ? это ?наследство? языка С, в котором не было специальных переменных true и false.
Kiberman

 
Сообщения: 468
Зарегистрирован: Вторник 30 Март 2004 12:43:05
Откуда: Новомосковск


Вернуться в Web-программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron