Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
модуль пхп.doc
Скачиваний:
4
Добавлен:
29.08.2019
Размер:
713.22 Кб
Скачать

6. Глобальные и статические переменные php Глобальные переменные в php

Глобальные переменные - это переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции).

Локальные переменные - переменные, определенные внутри подпрограммы (пользовательской функции). Они доступны только внутри функции, в которой они определены.

Для PHP все объявленные и используемые в функции переменные по умолчанию локальны для функции. То есть, по умолчанию нет возможности изменить значение глобальной переменной в теле функции.

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

Второй способ доступа к переменным глобальной области видимости - использование специального, определяемого PHP массива $GLOBALS

Статические переменные в php

Помимо локальных и глобальных переменных, в PHP существует еще один тип переменных - статические переменные.

Если в теле пользовательской функции объявлена статическая переменная, то компилятор не будет ее удалять после завершения работы этой функции.

Объявление статических переменных:

<?php function funct(){      static $int = 0;          // верно      static $int = 1+2;        // неверно  (поскольку это выражение)      static $int = sqrt(121);  // неверно  (поскольку это тоже выражение)      $int++;      echo $int; } ?>

Пример работы пользовательской функции, содержащей статические переменные:

<?php    function funct()    {       static $a;       $a++;       echo "$a";    }    for ($i = 0; $i++<10;) funct(); ?>

Данный сценарий выводит строку:

1 2 3 4 5 6 7 8 9 10

Если мы удалим инструкцию static, будет выведена строка:

1 1 1 1 1 1 1 1 1 1

7. Система типов языка php

8. Вывод данных в php

Вывод данных.

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

Прежде всего рассмотрим, как получить структуру таблицы. Для этого в PHP существует функция: mysql_list_fields(string database_name, string table_name, int [link_identifier]). Параметр database_name - наименование базы данных, содержащей нашу таблицу.table_name - наименование таблицы, данные о полях которой мы пытаемся получить. int [link_identifier] - необязательный параметр, указывающий активное соединение.

Результат работы данной функции может быть использован в качестве параметра в следующих функциях: mysql_field_flags() mysql_field_len() mysql_field_name() and mysql_field_type()

Для того, чтобы узнать, сколько полей содержит данная таблица, необходимо использовать функцию mysql_num_fields(int result). Единственный обязательный параметр result, содержит результаты работы функции mysql_list_fields().

Для получения имен полей используем функцию mysql_fiels_name(int result, int field_index). result - результат работы функции mysql_list_fields(), а field_index - порядковый индекс поля. Например, mysql_field_name($res,1) - имя первого поля в таблице

Соединим все это вместе, предварительно установив соединение с базой данных, как я уже описывал:

mysql_connect("yourhost","user","password");

mysql_select_db("database");

$res = mysql_list_fields("database","table");

echo "<TABLE BORDER=1>";

echo "<TR>";

for ($i = 0; $i < mysql_num_fields($res); $i++) {

echo "<TH>";

echo mysql_field_name($res,$i);

echo "</TH>";

}

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

Теперь перейдем к выводу содержания таблицы. Сначала необходимо выполнить запрос к базе данных. Запрос должен выглядеть так: SELECT * FROM tablename. Как посылать запросы к базам данных подробно описано в опыте "Создание системы Совет Дня". Код будет выглядеть следующим образом:

$sql = "SELECT * FROM users";

$res = mysql_query($sql);

while ($row = mysql_fetch_row($res)) {

echo "<TR>";

for ($i = 0; $i < $fields; $i++) {

echo "<TD>".$row[$i]."</TD>";

}

echo "</TR>";

}

echo "</TR></TABLE>";

Результатом работы этого скрипта будет, примерно, следующая таблица:

name

email

John

john@world.org

Kate

cat@somewhere.com

William

bg@microsoft.com

Andrew

exper@inbox.ru

В следующем опыте рассмотрим как организовать постраничный вывод результатов.