PHP: различия между версиями

31 байт убрано ,  5 лет назад
м
замена категории на шаблон для работы полки, removed: Категория:Языки программирования с помощью AWB
м (замена категории на шаблон для работы полки, removed: Категория:Языки программирования с помощью AWB)
*/
 
//Комментарии очень удобны в тех случаях, когда необходимо исключить часть кода для отладки программы, например:
 
$uname = $_POST['uname'];
 
//$uname = preg_replace('#[^a-zA-Z0-9\_\-\.]#', '', $uname);
echo $uname;
 
#Изначально комментарии создавались для того, чтобы не нарушая работы программы, добавить описание к той или иной строке, например:
 
echo getUsersOnline(2, 1, 4);
</source>
 
Следует помнить о том, что стили комментариев PHP действуют только внутри ограничителей PHP. Если PHP встретит эти символы комментариев вне ограничителей, то они, как и любой текст, будут помещены на HTML-страницу. Например:
 
<source lang="php">
*object (Объекты);
*NULL (пустой тип);
*Resource (ресурсы);
 
Есть функция <code>gettype()</code>, возвращающая тип, который РНР назначил переменной:
Стоит заметить, что операция «'''.'''» (точка) используется для склеивания (конкатенации) строк.
 
Существует также функция settype(), которая явно устанавливает тип:
 
<source lang="php">
</source>
 
Выполнение этого фрагмента кода приведет к такому же результату, как и предыдущего.
 
Кроме функции <code>settype()</code> преобразование типов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется путем указания перед переменной ее нового типа, взятого в скобки:
 
=== Внешние переменные ===
После того, как запрос клиента проанализирован веб-сервером и передан РНР-интерпретатору, последний устанавливает ряд переменных, которые содержат данные, относящиеся к запросу и доступны все время его выполнения.
 
Сначала PHP инициализирует массивы <code>$_ENV</code> (переменные окружения) и <code>$_SERVER</code><ref>На самом деле, порядок инициализации суперглобальных массивов зависит от настроек в файле ''php.ini''</ref>. Ассоциативный массив $_SERVER содержит следующие ключи (индексы массива):
*<code>$_SERVER['PHP_SELF']</code> — путь к файлу, содержащему выполняющийся скрипт, относительно корневого каталога (папки) сервера. Пример: <code>/w/index.php</code>
 
Затем РНР заполняет переменную <code>$_GET[]</code>, являющуюся ассоциативным массивом, которая создаётся при анализе строки запроса. Строка запроса хранится в элементе массива <code>$_SERVER['QUERY_STRING']</code> и представляет собой информацию, следующую за символом «?» в запрошенном URL. РНР разбивает строку запроса по символам «&»<ref>Символ разделения также может меняться в файле ''php.ini''. Часто используется символ «;».</ref> на отдельные элементы, а затем ищет в каждом из этих элементов знак «=». Если знак «=» найден, то создается переменная с именем из символов, стоящих слева от знака равенства. Рассмотрим следующую форму:
 
<source lang="html5">
</source>
 
Если запрос страницы выполняется при помощи метода <code>POST</code>, то появляется группа POST-переменных, которые интерпретируются так же и помещаются в массив <code>$_POST[]</code>.
 
== Константы ==
</source>
 
По традиции имена констант пишут буквами верхнего регистра. И хотя это только традиция, мы Вам рекомендуем ей следовать, поскольку плохие программисты получаются в том числе и из тех, кто не следовал хорошим традициям. Существует функция <code>defined()</code>, которая проверяет, определена ли константа:
 
<source lang="php">
*<code>++$a</code> — увеличивает $a на 1 и возвращает новое значение $a.
*<code>$a--</code> — возвращает старое значение $a и уменьшает $a на 1.
*<code>--$a</code> — уменьшает $a на 1 и возвращает новое значение $a.
 
=== Операторы сравнения ===
 
==== while ====
Оператор <code>while</code> называется оператором цикла с предусловием. При входе в цикл вычисляется выражение условия, и, если его значение отлично от нуля, выполняется тело цикла. Затем вычисления выражения условия и операторов тела цикла выполняется до тех пор, пока значение выражения условия не станет равным нулю. Оператором <code>while</code> удобно пользоваться для просмотра всевозможных последовательностей, если в конце них находится заранее известный символ. (Это очень удобно в C++, к примеру для определения длины строки, поскольку в С++, по определению, строка есть последовательность символов типа char, заканчивающаяся нулевым символом).
 
Пример простейшего цикла while:
</source>
 
Примечание: В PHP стандартное время исполнения скрипта — 30 секунд (эту настройку можно изменить в файле php.ini). То есть по прошествии 30 секунд с начала выполнения скрипта, его действие будет прервано. Таким образом, время выполнения бесконечного цикла — полминуты.
 
==== do…while ====
 
==== for ====
Как уже говорилось, итерационный цикл имеет следующий формат:
 
<source lang="php">
</source>
 
Здесь <code>expression1</code> (инициализация цикла) — последовательность определений и выражений, разделяемая запятыми. Все выражения, входящие в инициализацию, вычисляются только один раз при входе в цикл. Как правило, здесь устанавливаются начальные значения счетчиков и параметров цикла. Смысл выражения-условия <code>expression2</code> такой же как и у циклов с предусловиями. При отсутствии выражения-условия предполагается, что его значение всегда истинно. Выражения <code>expression3</code> вычисляются в конце каждой итерации после выполнения тела цикла.
 
В следующем скрипте, мы по традиции выведем числа от 0 до 5:
</source>
 
Результат аналогичен, показанному на предыдущем рисунке.
 
==== foreach ====
 
<source lang="php">
$link_search_subject = "Экранирование";
 
echo
 
Если подстрока <code>needle</code> не найдена, возвращает <code>FALSE</code>.
 
 
'''Пример:'''
//Заметьте, нет команд echo - эту команду можно использовать только после того, как отправились все куки
// P.S. Если на странице используются куки, лучше не использовать кодировку UTF-8
 
 
session_start();
$check_password = mysql_query("SELECT * FROM `base`.`users` WHERE (login='".$_POST['login']."')"); // SQL Запрос для проверки пароля
$row_check_password = mysql_num_rows($check_password);
 
 
while($row_check_password = mysql_fetch_assoc($check_password)){ //Получение данных о пользователе
 
== Ссылки ==
 
* [http://docs.php.net/manual/ru/ Руководство по PHP] (включая FAQ)
* [http://www.php.net/docs.php Documentation]
* [http://php.net/manual/en/index.php PHP Manual] (оригинал, англ.)
* [http://www.php-s.ru/self-teacher/ Самоучитель (учебник) по PHP]
 
[[Категория:Веб-разработка]]
[[Категория:Языки программирования]]
{{BookCat}}
 
[[Категория:{{Темы|Языки программирования]]}}
 
[[Категория:Веб-разработка]]
531

правка